2012-01-24 153 views
0

我刚刚写了一个非常简单的WCF服务,用OData公开SQL Server数据库。我可以连接到服务,并使用“http:// localhost:3006”发出请求,但无法使用IP地址连接,即使在本地计算机上也是如此。OData WCF连接被拒绝

我跟着这些基本步骤来建立WCF服务,并从MSDN没有问题,增加了JSONP库: http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx

我检查我的防火墙日志,没有发现任何表明任何问题,但防火墙不该当连接到我自己的本地IPv4地址时,甚至不会有问题。 Windows防火墙被禁用,不能成为问题。我看到这条线在web.config:

<!-- 
<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> 
</authentication> 
--> 

,并评论它,你可以看到,但它并没有解决问题。我怎样才能从远程机器连接到这个调试服务器?

回答

2

我能这样做来解决这个问题如下:

执行Windows更新(只是做)。
更新到Visual Studio 2010 SP1。
获取IIS Express应用程序。
在VS中,右键单击该项目节点,并点击“使用IIS快递......”
在IIS快递ApplicationHost.config文件,你会在XML
网站节点下引用您的项目有一个网站列表,绑定需要更改为:

<binding protocol="http" bindingInformation=":[preferredport]:" /> 

其中[preferredport]应该是您要使用的端口号。
在命令行中键入此通知httpsys监听所有的IPv4地址:

netsh http add iplisten 0.0.0.0 

对于IPv6,使用此行:

netsh http add iplisten :: 

运行从VS2010的项目,你现在应该能够远程连接。

这是这么多的麻烦少用Linux的休息...好像应该已建成的东西,因为开发者显然想用远程客户端调试......

有可能做到这一点没有IIS Express,但我不知道你将如何使用适当的绑定来配置VS调试服务器,但是这种方法不使用Fiddler或WebMatrix或任何其他蓬松的东西。

+0

+1发布您的解决方案! –