【问题标题】:.NET 4 WCF REST service 404 on some requests.NET 4 WCF REST 服务 404 对某些请求
【发布时间】:2011-07-19 16:23:31
【问题描述】:

我有一个 .NET 4.0 WCF REST 服务(用于生成和验证产品密钥),我使用 Arvixe(通过 Visual Studio 中的 Web 部署)在我的主机上设置了该服务。在我的本地 Windows 7 机器上,它从 IIS 运行良好,但在我的主机上,除了基本服务 URL 之外,我得到了 404 错误。例如:

  • “http://www.mydomain.com/LicensingServer/” - 在浏览器请求返回响应(带或不带查询字符串参数)时按预期工作
  • “http://www.mydomain.com/LicensingServer/help” - 在 web.config 中打开默认 WCf 帮助页面时返回 404
  • “http://www.mydomain.com/LicensingServer/validate” - 从浏览器请求返回的 404(带或不带查询字符串参数)

我的方法定义为:

[WebGet(UriTemplate = "?bla={bla}&etc={etc}")]  
public Stream GetLicenseKey(string bla, string etc)

[WebGet(UriTemplate = "/validate?item={item}")]  
public Stream ValidateLicense(string item,)

我的 Global.ascx 有:

RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(LicensingService)));

我的 web.config 几乎是向导生成的标准模板,但我已添加:

runAllManagedModulesForAllRequests="true"

我尝试在 web.config 中为“.svc”(IIS 管理器中已经存在这个)、“.*”和“*”添加几个新的处理程序,但没有一个帮助。我还尝试按照 Arvixe 论坛中的建议添加一个带有 prefix="http://www.mydomain.com/" 的 baseAddressPrefixFilter,但这也没什么区别。

我也打开了 WCFTrace 日志记录,但到目前为止我从服务器获取日志文件一直没有成功,当我下载它时它显示为一个空的 0b 文件,但在服务器上显示为 280kb。

我猜这只是一个简单的配置问题,但我已经没有想法了。我不明白为什么它在我的本地(非常基本的安装)IIS 上运行良好,但在我的主机上却没有。

我意识到在 stackoverflow 上还有其他问题,但我已经提出了大量问题并尝试了许多建议但没有解决这个问题。许多解决方案都与将处理程序添加到我尝试过的 web.config 相关。

谁能告诉我哪里出了问题或告诉我下一步该往哪里看?

谢谢。

【问题讨论】:

    标签: c# wcf rest


    【解决方案1】:

    查看此帖子:http://pranayamr.blogspot.com/2011/03/rest.html 可能会帮助您轻松解决问题。

    如我所见,不需要这个

    RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(LicensingService)));
    

    查看以上链接了解更多详情

    【讨论】:

    • 我相信该帖子适用于仍然使用 .svc 文件(或至少在 url 中包含 .svc)的旧式服务。在 .NET 4 中,这似乎已被 System.Web.Routing 基础结构(我认为与 MVC 共享)取代,这就是需要 RouteTable.Routes.Add 行的原因。我通读了帖子,但除了新旧服务风格之间的差异之外,我找不到其他任何东西。
    【解决方案2】:

    结果证明解决方案相当明显。我将 WCF 服务托管在根网站安装了 Wordpress 的虚拟目录中。 Wordpress 添加了 URL 重写,这些都阻止了我访问服务。我添加了一个“排除”类型规则,现在一切正常。我是如此专注于 WCF 配置方面的事情,以至于我什至没有想到这一点,我求助于浏览 IIS 设置的每一页并将其与我的本地副本进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多