我正在通過他創建的一些Web服務(主要涉及LINQ to SQL)訪問SQL Server(2008 Express)的網站上使用另一個編碼器,UI是在Silverlight中。我一直在研究系統的另一部分,但剛剛得到他最新的代碼,並試圖在我的機器上運行它,但遇到了錯誤。CommunicationException從Silverlight應用程序調用的Web服務的異步回調
這是在reference.cs文件中的一個行的CommunicationException,該Web服務的EndXXX方法:
// This is for a Ping method we created just to trouble shoot- it behaves the same.
public string EndPing(System.IAsyncResult result) {
object[] _args = new object[0];
// Next line throws Communication Exception
string _result = ((string)(base.EndInvoke("Ping", _args, result)));
return _result;
}
的錯誤信息是:試圖讓
「時發生錯誤對URI'http://localhost:1233/SummitService.svc'的請求,這可能是因爲嘗試以跨域方式訪問服務而沒有適當的跨域策略或者不適合SOAP服務的策略您可能需要聯繫該服務的所有者發佈跨域策略文件並確保它允許發送與SOAP相關的HTTP頭。 「
整個堆棧在我的本地機器上,所以我不應該需要進行任何跨域調用。我們查看了所有可以找到的配置代碼(web .config,ServiceReferences.ClientConfig),將所有對他的機器的引用都改爲我的。對於所有這些技術我們都很新,所以我們已經運行到了我們的知識末端。鐘聲任何人?
UPDATE
所以我做了一些故障排除,發現如果我輸入啓動整個事件的aspx頁面的localhost地址,它會正常加載,並且我在頁面上看到來自webservice的數據。只有當我調試時,我得到這個錯誤。
我還注意到,當我嘗試和調試頁面時,它正在將文件位置 - D:\ projects \ etc - 加載到瀏覽器中,而不是通過本地主機。它實際上是加載項目中的.html測試頁面,即使我已經將.aspx頁面設置爲起始頁面。
所以它看起來與項目設置或VS2008設置有關,而不是像我第一次假設的配置問題。有沒有人有任何其他建議?
感謝您的建議。我試過了,但沒有運氣。說實話,雖然我提供了所有用於完整性的技術,但「Ping」Web服務(它只是返回一個字符串文本)具有相同的問題,這讓我認爲這對服務來說很簡單。希望我知道什麼! – TwainJ 2009-01-22 19:08:52