我在.NET 3.5中使用MS Ajax和jQuery UI。它在本地工作正常,但是当我在statging服务器上发布它时,它会给出一个'Sys'未定义的javaScript错误。经过调查,我发现.axd文件没有加载,而且是404。 我检查了web.confing,我有必要的条目。 我用谷歌搜索并阅读每篇文章,但无法找到解决方案。 以前有没有人像这样进入过这样的prblme?
答案 0 :(得分:11)
我刚刚在IIS 6上使用我们的服务器遇到了它。它是通过确保在system.web部分(IIS7不同)来处理的。
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/>
</httpHandlers>
答案 1 :(得分:2)
我在web.config中有正确的设置,我通过更改IIS 8以在&#39; Classic&#39;中运行来修复此问题。模式而不是“集成”模式模式。
答案 2 :(得分:1)
这对我有用:
将以下处理程序添加到web.config:
<system.webServer>
<handlers>
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode" />
答案 3 :(得分:1)
在我的情况下,我在Web窗体应用程序中使用路由。以下步骤解决了我的问题。它很奇怪但它有效。它可能会帮助那些在Web表单中实现路由的人。 我的项目是.Net 4.5
/**
* Attempts to return body as parsed `JSON` object, or raises an exception.
*/
json(): any {
if (typeof this._body === 'string') {
return JSON.parse(<string>this._body);
}
if (this._body instanceof ArrayBuffer) {
return JSON.parse(this.text());
}
return this._body;
}
RouteConfig.RegisterRoutes(RouteTable.Routes);
答案 4 :(得分:0)
我还在托管的Web服务上看到了这种行为;本地版没有问题。在尝试了几十种system.web / httpHandlers和system.webServer / handlers语句之后,我终于放弃并尝试了创建虚拟ScriptResource.axd的最不优雅的解决方案 - 瞧,它有效!我猜测尽管在web.config中设置了'validate = false',但主机级别的IIS中仍有一些隐藏的验证设置。
答案 5 :(得分:0)
迁移到SmarterASP.Net后,我也遇到了同样的问题。
通过创建空文件ScriptResource.axd修复了该问题