0

我有在开发环境(我的机器)上工作的代码,但在 IIS6 上不起作用

我在 ASPX 页面中有一个方法,其足迹类似于:

 [WebMethod()]
 [ScriptMethod()]
 public static string HelloWorld(string name)
  { 
       return 'Hi '+name;
  }    

当我在浏览器上查看控制台时,我可以看到我的脚本调用了这个方法,尽管 IIS 返回了 404 not found。

该脚本对此 url 执行 http POST:http: //mydomain.com/myPage.aspx/HelloWorld

我猜它与 IIS 上的 mime 类型有关?

4

1 回答 1

0

找到了解决方案,问题是由两件事引起的。

首先,我需要将它添加到 Web.Config

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

然后,另一个问题是使用称为 UrlRewritingNet (http://www.urlrewriting.net/149/en/home.html) 的 url 重写工具

配置此模块的方法之一是将 IIS6 作为 ISAPI 过滤器放入,匹配通配符 * ,因此如果没有匹配文件扩展名,此过滤器将运行查询。

我解决第二个问题的方法是对我的服务进行 XML 查询,而不是 json 查询。然后在拨打电话时使用带有文件扩展名的 url。

希望这可以帮助

于 2012-05-31T17:12:34.897 回答