0

我正在使用 WebServiceHost 接收命令对象并向客户端返回响应。

我为对象设置了数据合同,并且客户端使用 HttpWebRequest 和 HttpWebResponse 对象执行。

这对于两个应用程序版本都运行良好,并且在从未安装过 Visual Studio 2012 的机器上仍然运行良好。

我有一台安装了 Visual Studio 2012 的测试机,用于调试客户端到服务器的交互并同时试用 VS2012。安装 VS2012 后,WebServiceHost 停止工作。如果客户端尝试使用 VS2012 向机器发送命令,或者客户端本身在 VS2012 上,客户端会收到 404 错误,我会收到相同的错误。这发生在应用程序的调试、发布和构建版本中。包括已发布并在其他机器上工作的版本。

一旦我使用 Visual Studio 2012 将问题缩小到机器上,我进行了一些搜索,但无济于事。所以我卸载了 Visual Studio 2012,仍然收到 404。卸载 .Net Framework 4.5 并重新安装 4.0,仍然收到 404。卸载并重新安装应用程序,仍然收到 404。我确保在客户端和服务器上都禁用了防火墙。

我认为这可能与 VS2012 机器未能序列化和反序列化与 xml 之间的命令对象有关。但是我似乎找不到什么 VS2012 依赖项可能会搞砸。

我现在已经准备好重新映像测试机器,但是如果我将来想使用 Visual Studio 2012,这对我没有帮助。

感谢您提供的任何帮助或指导。

4

1 回答 1

0

结果证明这是客户端的一个问题。为 WebServiceHost 配置的 URI 包含“commands/”限定符。在安装 .Net 4.5 之前,WebServiceHost 在没有“commands/”的情况下响应请求,但是一旦更新它就不再会了。不太清楚为什么会这样,但它确实纠正了这个问题。

于 2013-06-27T12:04:55.040 回答