小编Sco*_*tes的帖子

为什么逗号URL被编码?

在ASP.NET MVC中调试时,我没有看到以下区别:

http://mysite.com?q=hi,bye
Run Code Online (Sandbox Code Playgroud)

http://mysite.com?q=hi%2Cbye
Run Code Online (Sandbox Code Playgroud)

查询字符串参数"q"的值始终为"hi,bye".

那么为什么逗号编码?

我想做这样的事情/sf/answers/52647661/.

我有这样的形式:

<form method="GET" action="/Search">
     <input type="hidden" name="q" value="hi,bye"/>
     <input type="submit" value="ok"/>
</form>
Run Code Online (Sandbox Code Playgroud)

如何防止此值被编码?

forms asp.net-mvc urlencode query-string

26
推荐指数
2
解决办法
3万
查看次数

Auth0中id_token和access_token的区别是什么

在Auth0中,您可以使用刷新令牌.在此链接中,我们可以看到许多返回的参数:

lock.showSignin({
  authParams: {
    scope: 'openid offline_access'
  }
}, function (err, profile, id_token, access_token, state, refresh_token) {
  // store refresh_token
});
Run Code Online (Sandbox Code Playgroud)

显然,access_tokens可用于检索用户配置文件数据.但这似乎是oauth特有的,我认为auth0使用openid?

id_token和之间有什么区别access_token

javascript openid oauth jwt auth0

22
推荐指数
2
解决办法
6278
查看次数

什么是动态语言中依赖注入的真实示例?

我有一个完整的.NET背景,但最近一直在使用Python和Ruby.我发现自己在思考如何最好地为Ruby中需要它们的对象提供依赖.

起初我认为,由于动态语言(重新定义,混合,存根等)的宽松,我实际上并不认为DI和IoC框架需要与依赖项进行交互.然而,然而,我遇到了为什么在动态语言中不需要 DI/IoC框架的答案.提供的理由与我不太相配.我希望我能看到一个可以解决问题的例子.

推荐的建议,我有点不同意:

原因1:可以在运行时更改依赖类(想想测试)

为什么IOC容器不必要的动态语言,我们看到的是一个依赖类(非注射),也就是说X,可以存根或一个测试嘲笑.当然,但这需要我们知道我们System Under Test取决于所谓的东西X.如果我们System Under Test突然依赖N而不是X,我们现在必须记住嘲笑N而不是X.使用DI的好处是我们永远不会意外地运行具有生产依赖性的测试,因为我们总是传递模拟的依赖项.

原因2:子类或使用构造函数注入进行测试

在每个人最喜欢的所有事物DI + Ruby,LEGO,Play-Doh和Programming中,我们都会看到一个将受测试系统子类化为模拟依赖项的示例.或者,我们可以使用构造函数注入.好的,所以B取决于A.我们调用B.get_dependency哪个提供B了一个实例A.但是如果A取决于N哪个X呢?我们必须调用get_dependency链中的每个连续对象吗?

原因3:依赖关系可以混合或monkeypatched

Fabio提到我们可以使用mixins/monkeypatch.所以X是混合的N.但问题是,如果X取决于A哪个取决于B?我们只是将mixins用于链中的每个依赖吗?我知道它是如何工作的,但它可能会变得混乱和迅速混乱.


旁注:许多用户说动态语言不需要DI框架.然而,Angular.JS确实从实施一个非常可靠的DI系统中受益.Angular基于JavaScript,一种动态语言.这种方法可以与Ruby或Python相媲美吗?

请记住,我并不是说我想强制 DI/IoC加入Ruby,Python等.

.net ruby python dependency-injection angularjs

14
推荐指数
1
解决办法
1665
查看次数

为什么IIS Express使用<system.web>而不是<system.webServer>?

使用Cassini但切换到IIS Express.我最初的想法是,<system.web>除了以下内容之外我可以删除所有内容:

<authentication mode="Forms">
  <forms loginUrl="/" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

我以前customErrors的设置是这样的:

<customErrors mode="On" defaultRedirect="/ServerError">
  <error statusCode="404" redirect="/NotFound" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

customErrors切换到IISExpress时删除了这个元素.现在404不再重定向到我漂亮的"NotFound"页面了.

用于我的网站的AppPool Clr4IntegratedAppPool让我知道它不使用Classic.

为什么IISExpress如此依赖于system.webIIS 7.5使用system.webServer

asp.net custom-errors iis-7.5 iis-express asp.net-mvc-3

8
推荐指数
1
解决办法
3650
查看次数

浏览器为什么/如何知道在没有明确指示的情况下缓存内容(html,css,js等)

我正在看Chirpy的css/js缩小,压缩等.我注意到它不支持缓存.它没有任何发送expires头,etags等的逻辑.

没有这个功能让我怀疑缓存内容是不是一个问题; YSlow的!这个等级让我有点困惑.现在我正在研究缓存,无法解释为什么SuperFish.css从缓存中检索这个css文件.

  1. 访问http://www.weirdlover.com(Chirpy的开发者)

    初步下载

  2. 查看初始网络跟踪.请注意,没有过期标头SuperFish.css.

    先拉

  3. 重新访问该页面并再次检查网络跟踪.现在SuperFish.css从缓存中检索.

    缓存的图像

为什么SuperFish.css在重新访问页面时从缓存中检索到了?即使我关闭所有chrome实例然后重新访问该页面,也会发生这种情况.

asp.net-mvc caching http-headers chirpy

7
推荐指数
1
解决办法
703
查看次数

为什么我的程序在urllib3日志之后挂起启动新的HTTPS连接?

我正在尝试诊断一个问题,我的一些芹菜工人进程似乎挂了几分钟.我有许多任务可以进行多次IO调用(通常是第三方API).在任何给定的工作中,我可能会对各种API提出数千个请求.我查看了日志,它们都有共同点:它们在urllib3连接到远程URL 后挂起.

在我的工作结束时(大约需要30分钟),通常会挂起一些任务.

以下是我用来推断的日志的例子urllib3:罪魁祸首:

Jul 08 04:46:26 app/worker.1:  [INFO/MainProcess] [???(???)] celery.worker.strategy: Received task: my_celery_task[734a49f6-bf6b-4423-9146-1c48366ba897] 
Jul 08 04:46:28 app/worker.1:  [DEBUG/Worker-11] [my_celery_task(734a49f6-bf6b-4423-9146-1c48366ba897)] src.aggregates.prospect.services.prospect_service: Beginning: Get social account data. provider_name: twitter, account_uid: some_user 
Jul 08 04:46:28 app/worker.1:  [INFO/Worker-11] [my_celery_task(734a49f6-bf6b-4423-9146-1c48366ba897)] requests.packages.urllib3.connectionpool: Starting new HTTPS connection (1): api.some_api.com 
Run Code Online (Sandbox Code Playgroud)

然后就是这样.Starting new HTTPS connection声明后没有任何记录.

这是我重新启动worker的地方:

Jul 08 05:09:18 app/worker.1:  [INFO/MainProcess] [???(???)] celery.worker.strategy: Received task: my_celery_task[734a49f6-bf6b-4423-9146-1c48366ba897] 
Jul 08 05:09:19 app/worker.1:  [DEBUG/Worker-4] [my_celery_task(734a49f6-bf6b-4423-9146-1c48366ba897)] src.aggregates.prospect.services.prospect_service: Beginning: Get social account data. provider_name: twitter, account_uid: some_user …
Run Code Online (Sandbox Code Playgroud)

python django celery urllib3 python-requests

7
推荐指数
1
解决办法
2973
查看次数

Web部署中的自动提供程序究竟是什么(msdeploy.exe)

有人可以解释(比technet/msdn docs更好)汽车提供商究竟做了什么,它是如何工作的,以及何时使用它.

这与Web部署有关.我看过很多文档指定-dest:auto,这对我来说并没有多大意义.

自动提供程序指定目标上的提供程序与源提供程序相同.

msdeploy.exe -verb:sync -source:appHostConfig ="MySite"-dest:auto,computername = Server1

当destination参数与-source参数相同时,auto提供程序使您可以避免输入-dest参数的完整路径.它还消除了从存档或包中单独复制清单文件的需要.

自动提供程序获取您指定的源并使用目标计算机上的相应位置.例如,如果指定appHostConfig = Site1作为源,则目标计算机上的目标将为Site1.当您希望"按原样"将网站同步到远程计算机时,这非常有用.

technet docs for auto provider

没有意义的例子:

msdeploy.exe -verb:sync -source:package=myapp.zip -dest:auto
Run Code Online (Sandbox Code Playgroud)

为什么要将目标确切地设置为源?有什么意义?你不是简单地用iteslf覆盖源代码吗?

在VS2010中发布包生成的生成的cmd文件生成如下内容:

"C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" -source:package='MySourcePath' -dest:auto"  
Run Code Online (Sandbox Code Playgroud)

不自动意味着源只会覆盖自己吗?但事实并非如此,它实际上更新了IIS网站(基于清单中的设置)

我已经尝试使用包作为目标,在这种情况下,它确实更新了源包而不是IIS站点.

这个问题的催化剂是我正在实施CI,我过去总是使用msbuild/xcopy.我想现在使用msdeploy.我想理解它,而不是简单地调用从visual studio生成的myproject.cmd.

例如,此SO链接指定使用自动提供程序作为dest参数.

谢谢

msdeploy webdeploy

6
推荐指数
1
解决办法
2359
查看次数

ASP.NET MVC 4 - @Section中Javascript函数内的Razor导致范围错误

问题是在@Section中的JS函数中放置一个C#变量会产生不正确的javascript(仅在MVC 4中).

在MVC 3中的JS函数中,一切都按预期执行.

@section test {

<script type="text/javascript">
    $(function () {
        alert(@DateTime.Now);
    });
</script>
} 
Run Code Online (Sandbox Code Playgroud)

使用完全相同的代码并将其放在MVC4应用程序中,您将得到格式错误的JS.

页面上的HTML实际上将呈现以下内容:

<script type="text/javascript">
    $(function () {
        alert(12/27/2011 11:04:04 AM);
Run Code Online (Sandbox Code Playgroud)

并且html会发出

); }

请注意,不会生成结束脚本标记.

似乎JS函数中的结束大括号混淆了Razor中的结束大括号.

请注意,我还在_Layout.cshtml文件中声明了RenderSection("test",false").

asp.net-mvc razor

5
推荐指数
1
解决办法
1万
查看次数

WorkerLostError('工人过早退出:信号15(SIGTERM).')

我最近开始在一个新的Django项目中使用芹菜.设置:

 -------------- celery@123 v3.1.7 (Cipater) 
---- **** -----  
--- * ***  * -- Linux-3.8.11-ec2-x86_64-with-debian-squeeze-sid 
-- * - **** ---  
- ** ---------- [config] 
- ** ---------- .> app:         nextlanding_api:0x1c23250 
- ** ---------- .> transport:   redis://rediscloud@123123 
- ** ---------- .> results:     djcelery.backends.database:DatabaseBackend 
- *** --- * --- .> concurrency: 4 (prefork) 
-- ******* ----  
--- ***** ----- [queues] 
 -------------- .> celery           exchange=celery(direct) key=celery 

software -> celery:3.1.7 (Cipater) kombu:3.0.8 py:2.7.4
            billiard:3.3.0.13 redis:2.9.0
platform -> system:Linux arch:64bit, ELF imp:CPython
loader   -> celery.loaders.app.AppLoader
settings …
Run Code Online (Sandbox Code Playgroud)

python redis celery

5
推荐指数
1
解决办法
5373
查看次数

Django为什么不重置SQLite3中的序列?

为什么Django允许您重置postgres和其他DBMS上的序列(AutoID)字段,但不能重置SQLite3?

在中查看sql_flush方法的源代码django/db/backends/sqlite3/base.py,其中有一条注释:

注意:不需要重置自动递增的索引(请参见其他sql_flush()实现)。此时只需返回SQL

我有一些测试,我在其中加载依赖于绝对主键ID的Fixture文件。由于Django不会为SQLite重置自动ID字段,因此这些固定装置无法正确加载。

在sqlite中重置auto id列似乎有些琐碎:如何在sqlite中重置自动递增序列号

python sqlite django postgresql

5
推荐指数
1
解决办法
895
查看次数