【问题标题】:ASP.NET application: AJAX PageMethods returning internal server error about "index.php" on Production Server OnlyASP.NET 应用程序:AJAX PageMethods 仅在生产服务器上返回有关“index.php”的内部服务器错误
【发布时间】:2009-09-07 06:33:08
【问题描述】:

我有一个 ASP.NET 应用程序在两个几乎相同的 Virtual Windows Server 2003 上运行。第一个是我的开发和测试服务器。我已经在那里安装了适用于 Framework 2.0 的 .NET WebExtensions,并且应用程序运行良好。现在我尝试在第二台服务器上发布相同的应用程序(我们称他为生产服务器)并在那里安装 .NET WebExtensions 并运行编译和数据库访问以及完整的 APS.NET 应用程序。除了通过 JavaScript AJAX 调用来调用静态 PageMethods。我已经使用 IE8 的开发者工具调试到 JavaScript 并发现它的工作原理相同。尽管如此,WebMethods 的所有调用都返回和内部服务器错误(错误代码 500)说“未知的 web 方法 index.php”。

有人知道生产服务器可能出了什么问题或需要更改哪些配置吗?

两个服务器的主要区别在于生产服务器使用.NET .../Framework64/v2.0.50727/aspnet_isapi.dll,而测试服务器使用.../Framework/v2.0.50727/aspnet_isapi.dll .

更多细节:

  1. 所有 PageMethods 都是静态的,返回一个字符串并具有 WebMethod-Attribute。
  2. 在两台服务器上,JavaScript 使用解析的 URL“http://myDomain/myPage.aspx/myWebMethod”和“Content-Type”-Header “application/json charset="utf-8" 创建一个 XmlHttpRequest 对象,并且正文包含正确的 JSON 定义PageMethods 的参数。
  3. 当然,所有使用 AJAX PageMethods 的 ASPX 页面都有一个将 EnablePageMethods 属性设置为“True”的 ASPX-ScriptManager。

【问题讨论】:

    标签: asp.net iis pagemethods


    【解决方案1】:

    我已经解决了我的问题。生产服务器上有一个 ISAPI_ewrite 配置为在所有网站上全局工作。在我将该设置更改为需要使用该重写的网站的网站单独 ISAPI_Rewrite 之后,AJAX XmlHttpRequests 就可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 2020-06-03
      相关资源
      最近更新 更多