タグ付けされた質問 「wcf」

Windows Communication Foundationは、サービス指向アプリケーションを迅速に構築するための統合プログラミングモデルを提供する.NET Frameworkの一部です。

13
WCFエラー-コントラクト 'UserService.UserService'を参照するデフォルトのエンドポイント要素が見つかりませんでした
これを修正する方法はありますか? UserService.UserServiceClient userServiceClient = new UserServiceClient(); userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted); userServiceClient.GetUsersAsync(searchString); 。 <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_UserService" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <security mode="None" /> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="http://localhost:52185/UserService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_UserService" contract="UserService.UserService" name="BasicHttpBinding_UserService" /> </client> <behaviors> <serviceBehaviors> <behavior name="Shell.Silverlight.Web.Service3Behavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> <services> …
98 c#  .net  wcf 

30
エラー5:Windowsサービスの開始時にアクセスが拒否されました
C#で作成したWindowsサービスを開始しようとすると、このエラーが発生します。 これまでの私のコード: private ServiceHost host = null; public RightAccessHost() { InitializeComponent(); } protected override void OnStart(string[] args) { host = new ServiceHost(typeof(RightAccessWcf)); host.Open(); } protected override void OnStop() { if (host != null) host.Close(); host = null; } アップデート#1 アカウントNETWORK SERVICEに権限を付与することで上記の問題を解決しましたが、別の問題が発生しました。 アップデート#2 サービスを開始できません。System.InvalidOperationException:サービス 'RightAccessManagementWcf.RightAccessWcf'には、アプリケーション(インフラストラクチャでない)エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、構成ファイルでサービス名に一致するサービス要素が見つからなかったか、サービス要素でエンドポイントが定義されていなかったことが原因である可能性があります。System.ServiceModel.ServiceHostBase.InitializeRuntime()at System.ServiceModel.ServiceHostBase.OnOpen()でSystem.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description、ServiceHostBase serviceHost)でSystem.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription description)でTimeSpanタイムアウト)System.ServiceModel.Channels.CommunicationObject。

9
WCFは、「セット」のないプロパティを制限します。回避策はありますか?
サービスメソッドの結果として渡すクラスがいくつかあり、そのクラスには取得専用のプロパティがあります。 [DataContract] public class ErrorBase { [DataMember] public virtual string Message { get { return ""; } } } サービス側で例外が発生しています: System.Runtime.Serialization.InvalidDataContractException:タイプ「MyNamespace.ErrorBase」のプロパティ「Message」の設定メソッドがありません。 このプロパティはゲッターとしてのみ使用する必要があります。ユーザーに値を割り当てることはできません。使用できる回避策はありますか?または、追加の属性が不足していますか?

17
DLLへの参照を追加できませんでした
C#アプリケーションで参照として.dllファイルを追加すると、エラーが表示されます。 「.... dll」への参照を追加できませんでした。ファイルがアクセス可能であり、有効なアセンブリまたはCOMコンポーネントであることを確認してください。 ILDissassemblerは有効なCLRヘッダーがないと言っているので、regsvr32を使用して登録しようとすると、別のエラーが発生します。 モジュール ""は読み込まれましたが、DLLRegisterServerの呼び出しはエラーコード '0x80004005'で失敗しました 64ビットWindows 7マシンでVS2010の最終バージョンを使用しています。何が問題でしょうか? ヒント/返信をありがとう
95 .net  wcf  reference 

5
.NET Remotingは本当に非推奨ですか?
誰もが.NET RemotingがWCFに置き換えられていると言っていますが、それがどれほど正確か疑問に思っています。Remotingが廃止されるという公式の言葉は見たことがありません。また、RemotingがWCFよりも理にかなっているシナリオは確かにあるようです。フレームワークのバージョン4.0であっても、Remoting関連のオブジェクトやメソッドは廃止されていません。3.5および4.0フレームワークのSystem.AddInがRemotingを使用することも私の理解です。 反対に公式の言葉はありますか? 記事「.NETでの通信オプションの選択(3.0の場合、それはその記事の最新バージョンであるため)」では、次のように述べています。 8クロスアプリケーションドメイン通信 同じプロセス内の異なるアプリケーションドメインにあるオブジェクト間の通信をサポートする必要がある場合は、.NETリモート処理を使用する必要があります。 もちろん、WCFは確かにアプリドメインの境界を越えるために使用できるため、これは正確ではありませんが、そのシナリオに対する公式の推奨事項ですか? 更新:私はClemens Vasters(RemotingとWCFを所有するチームに属していた)に次の質問を送信しました。 クレメンス、あなたがリモーティングとwcfの両方を所有するチームに所属していることを理解しています。また、ソースに移動する必要があると思う質問がいくつかあります。 最初に、リモート処理がなくなるかどうかについて質問があります。具体的には、プロセス内のアプリドメイン間通信でリモート処理を広範囲に使用するかなり大きなアプリケーションがあり、このリモート処理の使用が「レガシー」と見なされているのかと思いました。もしそうなら、AppDomain.CreateInstanceと友達は他のもので置き換えられますか? これは彼の返事です: リモート処理は.Net Frameworkの一部であるため、廃止されません。COMは、Windows NT 3.5 / Windows 95以降Windowsに組み込まれており、なくなっていないため、すぐになくなることもありません。 とはいえ、Remotingへの開発投資はごくわずかです。WCFはRemotingの後継であり、マネージコードのCOM / DCOMの後継です。 インプロセスのアプリドメイン間通信の場合、リモート処理はCLRのネイティブな通信方法です。大量のデータまたは非常に多くのメッセージを短時間でポンプするパフォーマンスの問題が発生している場合は、WCFとNetNamedPipeBindingを真剣に検討する必要があります。
95 .net  wcf  remoting 

11
WCFタイムアウト例外の詳細な調査
IIS7で実行されているWCFサービス(* .svc)を持つアプリケーションと、サービスにクエリを実行するさまざまなクライアントがあります。サーバーはWin 2008 Serverを実行しています。クライアントは、Windows 2008 ServerまたはWindows 2003 Serverを実行しています。次の例外が発生します。これは、実際に多数の潜在的なWCF問題に関連している可能性があることを確認しています。 System.TimeoutException: The request channel timed out while waiting for a reply after 00:00:59.9320000. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion …

1
Visual Studio Wcfテストクライアント-Int配列の入力
WCFサービスの簡単なテストに関しては、Visual Studio WCFテストクライアントが非常に便利であることがわかりました。これは、Visual Studioインストールディレクトリを基準にして、この場所にあるテストクライアントです。 \ Common7 \ IDE \ WcfTestClient.exe System.Int32 []タイプのパラメーターを必要とするいくつかのサービス呼び出しがあり ます。エラーを受け取り続けるため、このパラメーターに対してどの値を入力すればよいかわからないようです。 '[入力した値]'はこのタイプの有効な値ではありません 値27を入力しようとすると、次のことを試しましたが、すべて失敗します 27 {27} 新しいSystem.Int32 [] {27} 誰でもこれを行う方法を手伝ってくれる?

2
CORS-httpリクエストを「プリフライト」する方法
私が所有しているWCFサービスにクロスドメインHTTPリクエストを送信しようとしています。クロスドメインスクリプティングの制限を操作するためのいくつかのテクニックを読みました。サービスはGETリクエストとPOSTリクエストの両方に対応する必要があるため、srcがGETリクエストのURLである動的スクリプトタグを実装できません。私はサーバーで自由に変更を加えることができるので、「Access-Control-Allow-Origin」ヘッダーと「プリフライト」リクエストとOPTIONSリクエストを含めるようにサーバー応答を構成することを含む回避策を実装しようとし始めました。この投稿からアイデアを得ました:CORSを機能させる サーバー側で、私のWebメソッドはHTTP応答に「Access-Control-Allow-Origin:*」を追加しています。応答にこのヘッダーが含まれていることがわかります。私の質問は、リクエストを「プリフライト」するにはどうすればよいですか(オプション)?jQuery.getJSONを使用してGETリクエストを作成していますが、ブラウザは悪名高いリクエストをすぐにキャンセルします。 Origin http:// localhostはAccess-Control-Allow-Originでは許可されていません このCORSテクニックを知っている人はいますか?リクエストをプリフライトするには、クライアントでどのような変更を行う必要がありますか? ありがとう!
94 javascript  wcf  jquery  cors 

4
WCFサービス、タイムアウトを増やす方法は?
ばかげた質問のように思えるかもしれませんが、WCFのすべてはasmxよりもはるかに複雑に見えますが、どうすればSVCサービスのタイムアウトを増やすことができますか? ここに私がこれまでに持っているものがあります: <bindings> <basicHttpBinding> <binding name="IncreasedTimeout" openTimeout="12:00:00" receiveTimeout="12:00:00" closeTimeout="12:00:00" sendTimeout="12:00:00"> </binding> </basicHttpBinding> </bindings> そして、私のエンドポイントは次のようにマッピングされます: <endpoint address="" binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout" contract="ServiceLibrary.IDownloads"> <identity> <dns value="localhost" /> </identity> </endpoint> 私が得ている正確なエラー: 要求チャネルは、00:00:59.9990000の後の応答を待っている間にタイムアウトしました。Requestの呼び出しに渡されるタイムアウト値を増やすか、BindingのSendTimeout値を増やします。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。 WCFテストクライアントには、サービスのランタイム構成を含む構成アイコンがあります。 ご覧のとおり、設定した値と同じではありませんか?何が悪いのですか? <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IDownloads" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" …
93 wcf 

4
WCFとASP .Net Web API
各テクノロジーを使用することの長所と短所は何ですか? WCF Web ApiがAsp.netに統合されましたAsp.net Web apiがセルフホスティングをサポートするようになりました。 同じ操作で複数のプロトコルスキーマを公開したい場合でも、まだWCFに頼るか、Mvcエンドポイントでもこれを実行できるのかと思います。 また、新しいAsp.Net Web APIはWsdlを公開しますか?そうでない場合、クライアントはどのような操作が可能かをクライアントがどのように理解するでしょうか? 間違いなく、Mvcの最高の機能はモデルバインダーです。WCFと同等の堅牢性はありますか? では、Asp.net Web APIがもたらすメリットを誰かに教えてもらえますか?WCFの方が圧倒的に強力でスケーラブルな選択肢、imoのようです。Mvc Web ApiがWCFモデルに対して持っている唯一のことは、おそらく開発の容易さですが、それは、それが最終的に深刻な設計上の制限となる場合、不法占拠を意味します。

3
HTTPClient応答からのGZipストリームの解凍
WCFサービス(WCFサービスからWCFサービス)からGZipエンコードされたJSONを返すAPIに接続しようとしています。私が使用していますHTTPClientの APIに接続するために、文字列としてJSONオブジェクトを返すことができました。ただし、この返されたデータをデータベースに格納できるようにする必要があるので、JSONオブジェクトを返して配列またはバイトまたはそれらの行に沿った何かに格納するのが最善の方法であると考えました。 特に私が問題を抱えているのは、GZipエンコーディングの解凍であり、多くの異なる例を試みてきましたが、まだそれを取得できません。 以下のコードは、接続を確立して応答を取得する方法です。これは、APIから文字列を返すコードです。 public string getData(string foo) { string url = ""; HttpClient client = new HttpClient(); HttpResponseMessage response; string responseJsonContent; try { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); response = client.GetAsync(url + foo).Result; responseJsonContent = response.Content.ReadAsStringAsync().Result; return responseJsonContent; } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); return ""; } } 私はこれらのStackExchange API、MSDN、およびstackoverflowのカップルなどのいくつかの異なる例に従っていますが、これらのいずれかを機能させることができませんでした。 これを達成する最良の方法は何ですか、私は正しい軌道に乗っていますか? みんなありがとう。
93 c#  json  wcf  gzip 

6
開発者がデータベースへの直接接続の代わりにWebサービスを使用する必要があるのはなぜですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前に閉鎖。 この質問を改善する データベースに直接接続するのではなく、Webサービスを介してリモートデータベースに接続する必要がある理由の「トップ10」リストを探しています。これは現在内部での議論であり、私はプロWebサービスですが、議論を失っています。私はWCF / Webサービスの基本を理解していますが、他の誰も理解していません。前進したいことは何でもできますが、現在選択していることに固執する必要があります。 これが私が思いついたものです。もう? WCF Webサービスは、正しく構成されていれば、より安全になります。 DBへの変更は、サービスレベル(構成ファイルまたは再コンパイルサービス)でのみ行う必要があります。 セットアップしてホストすると、Webサービスを利用しやすくなります。
93 wcf  web-services 

6
カスタムHTTPステータスコードを作成できますか?
RESTおよびWCFサービスがあり、操作に基づいてカスタムステータスコードを送信したいと思います。 いくつかの検証が失敗した場合、HTTP 444を送信したい、承認が失敗した場合、HTTP455を送信したい例 問題は、SOAPとRESTの両方のWebサービスに対してどのように検証するかです。 クライアントでは、WCFサービスから(SOAPを使用して)HTTP 400/500を送信すると、ステータスコードを示す例外がクライアントにスローされるため、エラーコードはどのように機能しますか。 新しいカスタムステータスコードを送信した場合、クライアントはこれをどのように処理しますか?
92 c#  asp.net  wcf  http  wcf-rest 

16
サービスにアプリケーション(インフラストラクチャー以外)のエンドポイントがありません
最近、WCFサービス(dll)とサービスホスト(exe)を作成しました。WcfTestClientにサービスを正常に追加できるので、WCFサービスが正しく機能していることがわかります。 しかし、サービスホスト(exe)からWCFを利用しようとすると、問題が発生しているようです。WCF(dll)への参照をサービスホスト(exe)に追加し、exeに必要なコンポーネントを作成できます。サービスインストーラー、サービスホスト、app.configなどをコンパイルし、InstallUtilを使用してexeを最後にインストールします。しかし、Microsoft管理コンソールでサービスを開始しようとすると、サービスは開始後すぐに停止します。 そのため、この問題の正確な原因を調査し始め、イベントビューアのアプリケーションログからこのエラーが発生しました。 説明: サービスを開始できません。System.InvalidOperationException:サービス 'Service'には、アプリケーション(インフラストラクチャでない)エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、構成ファイルでサービス名と一致するサービス要素が見つからなかったか、サービス要素でエンドポイントが定義されていなかったことが原因である可能性があります。 このエラーは実際にはで生成されOnStartます。この呼び出しを実行すると、私のexeのServiceHost.Open()。他の個人がこの問題に遭遇した多数の投稿を見てきましたが、それらのすべてではないにしても、ほとんどがサービス名または契約を主張しています。名前空間とクラス名は指定されていません。私は私の設定ファイルでこれら両方のエントリをチェックしました。exeとdllで、それらは完全に一致します。私は他の人たちを後ろでダブルチェックして、私が一時的に失明していないことを確認しましたが、もちろん彼らはすべてが正しく指定されているように見えたという私と同じ結論に達しました。この時点で何が起こっているのか、私は本当に途方に暮れています。誰かがこの問題を手伝ってくれませんか? これが発生する可能性のある理由として考えられるもう1つのことは、app.configが読み込まれないことです。少なくとも私が読むべきだと思うものではありません。これは問題でしょうか?もしそうなら、どうすればこの問題に対処できますか?再度、どんな助けもいただければ幸いです。

7
MemoryCacheスレッドセーフ、ロックは必要ですか?
手始めに、以下のコードはスレッドセーフではないことがわかっているので、それを捨てさせてください(修正:そうかもしれません)。私が苦労しているのは、テストで実際に失敗する可能性のある実装を見つけることです。現在、大規模なWCFプロジェクトをリファクタリングしています。このプロジェクトでは、(ほとんどの場合)静的データをキャッシュし、SQLデータベースからデータを取り込む必要があります。少なくとも1日に1回は有効期限が切れて「更新」する必要があるため、MemoryCacheを使用しています。 以下のコードはスレッドセーフであってはならないことは知っていますが、高負荷で失敗することはなく、問題を複雑にするために、グーグル検索は両方の方法で実装を示しています(ロックの有無と必要かどうかの議論が組み合わされています。 マルチスレッド環境でのMemoryCacheの知識がある人は、削除の呼び出し(めったに呼び出されませんが、その要件)が取得/再入力中にスローされないように、必要に応じてロックする必要があるかどうかを明確に教えてくれますか? public class MemoryCacheService : IMemoryCacheService { private const string PunctuationMapCacheKey = "punctuationMaps"; private static readonly ObjectCache Cache; private readonly IAdoNet _adoNet; static MemoryCacheService() { Cache = MemoryCache.Default; } public MemoryCacheService(IAdoNet adoNet) { _adoNet = adoNet; } public void ClearPunctuationMaps() { Cache.Remove(PunctuationMapCacheKey); } public IEnumerable GetPunctuationMaps() { if …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.