2012-07-16 114 views
1

我有一個Silverlight應用程序與WCF。我已經在服務器上部署了此應用程序進行測試,應用程序使用公共IP進行訪問。在同一臺服務器上,我還託管了Silverlight應用程序使用的WCF服務。這些服務也可以使用相同的公共IP訪問,但使用不同的端口。 在XAP文件中,我更新了服務參考URL(使用公共IP)並且應用程序工作得很好。 後來我想應用localhost而不是在應用程序參考中使用公共IP,因爲silverlight應用程序和服務都在同一個IIS上,它會改善應用程序的響應時間。在服務引用文件Silverlight WCF託管

舊網址

http://public_ip:8080/servicename.svc 

新網址服務引用文件

http://localhost:8080/servicename.svc 

但這樣做我的應用程序沒有工作了。 任何人都可以幫助我理解爲什麼我不能使用本地主機作爲服務參考?

+1

我認爲這對於那些從ASP.NET開發到Silverlight的人來說可能是一種常見的誤解。 ASP.NET頁面中的代碼全部在服務器上執行,只有標記發送給客戶端。但是,對於Silverlight,XAP文件託管給客戶端,實際上由客戶端自己執行。因此,所有代碼都來自客戶端的上下文。 – 2012-07-16 19:59:49

+0

@MikeGuthrie謝謝!很好地解釋。 – pramodtech 2012-07-17 09:12:26

回答

1

XAP文件包含在客戶機上運行的代碼。在這種情況下,LocalHost會引用託管瀏覽器會話的機器,而不是託管網站的服務器。在客戶端機器上,您需要完全限定的URL來查找服務。