0

私は自分の WCF から自分のプロジェクトに XML ファイルを送信しようとしましたが、うまくいきませんでした。応答が WCF によって完了され、電話に送信されると、プログラムから例外がスローされます。答えを探していて何も見つからなかったので、誰かが私を助けてくれることを望んでいました. (プログラムは、Windows Phone アプリケーションに XNA を使用します)

[System.Net.WebException]   {System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound.
   at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
   --- End of inner exception stack trace ---
   at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)}  System.Net.WebException


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

IService.cs

 [ServiceContract]
    [XmlSerializerFormat]
    public interface IService
    { 
        [OperationContract]
        void ParseScore(HighScore score);
        [OperationContract]
        string HighScoreList();
    }
    public class HighScore
    {
        [XmlElement]
        public UInt32 m_rank;
        [XmlAttribute]
        public string m_name;
        [XmlAttribute]
        public UInt32 m_score;
    }

Service.svc

public string HighScoreList()
        {

            XmlSerializer ser = new XmlSerializer(typeof(HighScore));
            using (FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("App_Data/Highscores.xml"), FileMode.OpenOrCreate))
            {
                return ser.Deserialize(fs).ToString();
            } 
        }

リクエストしたコードはこちら

void globalRecieve(object obj, DodgeService.HighScoreListCompletedEventArgs e)
        {
            try
            {
                string result = e.Result;
                using (TextReader reader = new StringReader(result)){ 
                    XmlSerializer xml = new XmlSerializer(typeof(List<DodgeService.HighScore>));
                    foreach (DodgeService.HighScore sco in xml.Deserialize(reader) as List<DodgeService.HighScore>)
                        highScores.Add(sco); 
                } 
            }catch(Exception exception){
                string error = exception.Message;
            } 
        }


        protected override void Initialize()
        {
             service = new DodgeService.ServiceClient("BasicHttpBinding_IService");
        service.HighScoreListAsync(null);
        service.HighScoreListCompleted += new EventHandler<DodgeService.HighScoreListCompletedEventArgs>(globalRecieve);

            base.Initialize();
        }
4

3 に答える 3

0

Windows Phone が実行され、開発用 PC に接続するために必要な LocalHost を介してサービスに接続しようとしていたため、Not Found エラーが発生し続けました。解決策は、サーバーで WCF サービスをホストし、サーバーに接続するか、開発用 PC の IP に接続することでした。

于 2013-10-24T13:42:39.957 に答える