ここに問題があります。SilverlightのWebClientがサーバーに接続していません
Silverlight 2アプリケーションをホストしているASP.netのWebサイトがあります。 私はサイトがSilverlightアプリからのコミュニケーションを希望しています。これはhttpリクエストで行います。ちなみに、誰かがもっと良い方法を知っているなら、教えてください。
私のサーバーには、以下のhttpリスナーが設定されています。私はどこかのチュートリアルサイトからこれをコピーし、それは主に、現時点での実験だから:
HttpListener listener = new HttpListener ();
listener.Prefixes.Add("http://localhost:4531/MyApp/");
listener.Start();
// Wait for a client request:
HttpListenerContext context = listener.GetContext();
// Respond to the request:
string msg = "You asked for: " + context.Request.RawUrl;
context.Response.ContentLength64 = Encoding.UTF8.GetByteCount (msg);
context.Response.StatusCode = (int) HttpStatusCode.OK;
using (Stream s = context.Response.OutputStream)
using (StreamWriter writer = new StreamWriter (s))
writer.Write (msg);
listener.Stop();
私がリクエストを送信するために、次のコードを使用しています:
private void MyButton_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
b.Content = "Hello World";
Uri serviceUri = new Uri("http://localhost:4531/MyApp/");
WebClient downloader = new WebClient();
downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(TestDownloadStoriesCompleted);
downloader.DownloadStringAsync(serviceUri);
}
void TestDownloadStoriesCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
TextBox1.Text = e.Result;
}
}
私の問題は、私は接続できるということです(私はコード内にブレークポイントを設定してテストしましたが)銀色のボタンをクリックすると何も起こりません。 (私は実際にボタンにデリゲートを接続していることをテストするために "Hello World"を追加しました)。
私は、silverclickがwebclient経由で接続するためのポリシーを必要としているが、私はサーバーとSilverlightアプリケーションの両方に同じサーバーと同じドメインを使用しています!
すべての返信いただきありがとうございます。
編集:私はこの例外が供給しています:
System.Security.SecurityException ---> System.Security.SecurityException:セキュリティエラーを。
また、私がreadingにしていることによると、xapの展開URIと要求URIも同じポートでなければなりません。
しかし、サーバーのプロパティを特定のポートでホストするように設定しても、同じポートをリッスンするようにリスナーを設定すると、メッセージが表示されずに失敗します。プロセスはファイルにアクセスできません別のプロセスで使用されます。私は、httpリスナーがそれをホストするために使用されている同じポートを聞くことができないためと推測しています。 しかし、SilverlightでホストWebクライアントの要求をどのように行うことができますか?
ありがとう、私はそれをしました。私は自分の投稿を編集します。 –