我正在使用WebServiceHost接收命令对象并向客户端返回响应。
我为对象设置了数据契约,并使用HttpWebRequest和HttpWebResponse对象执行客户端。
这在两个应用程序版本上都工作得很好,在从未安装过Visual Studio 2012的机器上仍然工作得很好。
我有一台安装了Visual Studio2012的测试机器,用来调试客户端到服务器的交互,同时尝试使用VS2012。一旦安装了VS2012,WebServiceHost就停止工作了。如果客户端试图使用VS2012向机器发送命令,或者客户端本身在VS2012上,那么客户端会收到404个错误。这发生在应用程序的调试、发布和构建版本中。包括已经发布并能在其他机器上运行的版本。
一旦我用Visual Studio 2012将问题缩小到机器上,我做了一些搜索,但都无济于事。所以我卸载了Visual Studio 2012,仍然收到了404。已卸载.Net Framework4.5并重新安装4.0、404。已卸载并重新安装应用程序,仍收到404。我已经确保在客户端和服务器上都禁用了防火墙。
我认为这可能与VS2012机器无法序列化和反序列化命令对象有关。但我似乎找不到VS2012依赖可能会把事情搞砸的地方。
我现在已经准备好重新创建测试机器的映像,但是如果我将来想要使用Visual Studio 2012,这对我没有任何帮助。
感谢您能提供的任何帮助或指导。
发布于 2013-06-27 20:04:55
这被证明是客户端的一个问题。为WebServiceHost配置的URI包含"commands/“限定符。在安装.Net 4.5之前,WebServiceHost可以在没有"commands/“的情况下响应请求,但一旦更新,就不会再响应了。我不太确定这是为什么,但它确实纠正了这个问题。
https://stackoverflow.com/questions/16827683
复制相似问题