0

SilverLightアプリケーションのボタンを含むSharePointログインページを使用しています。ログインページはクライアント側でロードされ、ボタンを押すことによって、SilverLightアプリケーションはクライアントマシンにインストールされているローカルWCFサービスを開き、OTPを生成する必要がありますが、私の場合はこれは起こっていません。URI http:// localhost:XXXXX/XXXXにリクエストを作成しようとしてエラーが発生しました

私が使用しているWCF Uriはこのhttp://localhost:12345/serviceのようなものです。ログインページのボタンを押すと、呼び出しがhttp://localhost:12345/clientaccesspolicy.xmlになることが気付きました。

私はClientAccessPolicy.xmlとCrossDomain.xmlをシステムのルートフォルダとプロジェクトフォルダに配置しました。

私もWCFサービスを介してClientAccessPolicy.xmlを与えることを試みているが、それはここで

を働いていませんでしたが、エラーの完全なスタックトレースです。

{System.ServiceModel.CommunicationException: An error occurred while trying to make a request to URI 'http://localhost:XXXXX/XXXXX'. 
This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, 
or a policy that is unsuitable for SOAP services. 
You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. 
This error may also be caused by using internal types in the web service proxy without using the InternalsVisibleToAttribute attribute. 
Please see the inner exception for more details. ---> System.Security.SecurityException ---> System.Security.SecurityException: Security error. 
    at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 
    at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState) 
    at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<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.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 
    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result) 
    --- End of inner exception stack trace --- 
    at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) 
    at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result) 
    at SLLogin.iCubeWCFsvc.Service1Client.Service1ClientChannel.EndGenKey(IAsyncResult result) 
    at SLLogin.iCubeWCFsvc.Service1Client.SLLogin.iCubeWCFsvc.IService1.EndGenKey(IAsyncResult result) 
    at SLLogin.iCubeWCFsvc.Service1Client.OnEndGenKey(IAsyncResult result) 
    at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)} 

答えて

0

最後に、私は私の問題の解決策を見出しました。 クライアントシステムのページからsilverlightボタンにアクセスしようとしたときにこのエラーが発生しました。これは、ローカルホストがクライアントマシンでClientAccessPolicy.xmlおよびCrossDomainPolicy.xmlを取得できないために発生します。

この問題の解決策は、クライアントマシンのルートフォルダにClientAccessPolicy.xmlとCrossDomainPolicy.xmlをコピーすることです。同時に、WCFまたはWPFサービスを介してポリシーファイルをlocalhost URLをサービス参照として使用します。

ClientAccessPolicy.xmlおよびCrossDomainPolicy.xmlを送信する方法については、これらのリンクを参照してください。

https://blogs.msdn.microsoft.com/carlosfigueira/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services/

https://code.msdn.microsoft.com/Accessing-self-hosted-WCF-7872c931

おかげ&よろしく

ハルシャ

0

私はこの方法で私の問題を解決しました。 Visual StudioでIIS Expressをローカルで使用するサービスを使用している場合は、 ClientAccessPolicy.xmlファイルとCrossDomainPolicy.xmlファイルをWebサービスプロジェクトのルートフォルダに含めてください。

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="SOAPAction"> 
     <domain uri="*" /> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

のcrossdomain.xml

<?xml version="1.0" encoding="utf-8" ?> 
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type" secure="true" /> 
</cross-domain-policy> 

参照してください:http://www.allenconway.net/2010/07/fixing-attempting-to-access-service-in.html

関連する問題