簡體   English   中英

通過WP8在WCF中進行通信異常

[英]Communication Exception in WCF via WP8

我在IIS的本地主機上部署了一個簡單的WCF服務。 我首先可以從Windows Phone應用程序訪問它。 但是在家里連接到其他Wifi網絡后,我無法通過新的本地IP訪問它。 我試圖重新發布該服務。 我也嘗試過在WP8應用中重新配置服務參考。 添加參考時,添加服務向導會檢測到部署在新IP上的WCF服務(在便攜式計算機連接到其他網絡后,本地IP地址自然會更改)。 但是,只要從設備調用一個簡單的Authenticate函數,它就會顯示一個異常。 由於信譽低下,Stackoverflow不允許我發布屏幕截圖,但是確切的異常消息是:

'System.ServiceModel.ni.dll中發生'System.ServiceModel.CommunicationException類型的異常,但未在用戶代碼中處理'附加信息:遠程服務器返回錯誤:NotFound。

在Reference.cs文件中,以下函數的第二行出現此異常:

public string EndAuthenticateCustomer(System.IAsyncResult result) {
            object[] _args = new object[0];
            string _result = ((string)(base.EndInvoke("AuthenticateCustomer", _args, result)));
            return _result;
        }

我正在調試模式下運行該應用程序。 如果我在手機上運行已安裝的應用程序並嘗試訪問該服務,則該應用程序將崩潰。 這是我最后一年項目的一部分。 因此,我將在大學以及家庭中工作,這意味着托管服務的本地IP經常會更改。 我一直在尋找這個確切的問題,沒有運氣。 任何幫助,將不勝感激。

您仍然必須在用於實例化服務的位置提供代碼,但是可以在實例化服務IP時對其進行配置:

        // at home
        //const string ipAddress = "192.168.200.111";
        // at school
        const string ipAddress = "192.168.100.118";
        string address = string.Format("http://{0}/MobileService/DataService.svc", ipAddress);
        var mobileDataService = new MobileDataServiceClient(new MobileDataServiceClient.EndpointConfiguration(), new EndpointAddress(address));

您必須根據所處的網絡來更改IP。或者,也可以將其推送到具有恆定IP的服務器(例如Azure)(如果可以的話)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM