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