2011-12-16 79 views
3

我是新來的WCF編程和我一直在做一個小項目,因與Net.Tcp端口共享問題。我使用的.NET Framework 4和IIS 7WCF Net.Tcp端口共享WAS

我有兩個WCF服務(serviceA和serviceB)我們在IIS上不同的網站服務器上所駐留。每個網站都有自己的.svc文件,web.config和bin。如果我在不同的net.tcp端口上擁有這些服務,那麼就沒有問題了,我可以從我的電腦上的visual studio中爲它們中的每一個添加服務引用。服務運行良好。

但是我們將很快開始與更多的服務項目,我們希望避免打開TCP端口各一,所以我一直在試圖讓serviceA和serviceB端口份額。如果我設置它們的同一個端口上,然後我可以訪問的第一個服務,我加,但是當我嘗試訪問加入到同一個端口,我得到以下錯誤的第二服務:

Metadata contains a reference that cannot be resolved: 'net.tcp://myserver/serviceB.svc'. The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was **. An existing connection was forcibly closed by the remote host If the service is defined in the current solution, try building the solution and adding the service reference again.

我不能工作出了什麼問題。我已經做了主題搜索的很多,我已經確定了以下服務正在運行:

Windows進程激活服務 Net.Tcp端口共享服務 的net.tcp偵聽器適配器

除淨.tcp是網站高級設置中啓用的協議。我目前最好的猜測是,它可能與我在IIS管理器中定義net.tcp綁定的方式有關。我的兩個運行獨立服務的網站都有以下內容:808:*(net.tcp)是否正確?

正如我剛纔所說,如果設置了兩個獨立的端口的TCP服務運行正常,因此問題必須進行相關的端口共享。非常感謝您的任何建議

回答

3

OK,我發現我是有這個問題。在IIS中,我將每項服務設置爲自己的網站,並試圖讓這些不同的網站共享端口。這是行不通的。

不過,我發現,如果我設置了只有一個網站,然後將我的服務的網站下seaprate應用程序,則端口共享會工作。這種方法可以讓我在一個網站下有多種服務作爲應用程序。