問題タブ [svc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF サービスの .SVC ファイルはどのように機能しますか?
典型的な WCF SVC ファイルには次のものがあります。
SVC ファイルは、WCF サービス dll ファイルの場所について何も通知しません。
誰かがこの SVC ファイル リンクを HTTP で開いた場合 (サービスが IIS でホストされている場合)、リンクはどのようにして dll ファイルを取得する場所を知るのでしょうか?
wcf - リモート サーバーでホストされる SVC クライアント プロキシおよび WSDL
wsdl と xsd が 1 つあり、wsdl から SVC クライアント プロキシを生成しました。wsdl は、インターネット上のどこかの Windows Server 2003 (ローカル ドメイン外) でホストされています。XSDも同じ場所にあります。Web ブラウザーでそれらを表示できますが、問題はありません。
次に、単純なコンソール アプリケーション クライアントを作成しました。クライアントを実行すると、フィドラーで正しい SOAP 応答が表示されますが、コンソール アプリケーションでは応答が null であることがわかります。つまり、SVC クライアントはそれを逆シリアル化できません。
xsd + wsdl も正しく、応答もあると確信しています(フィドラーで確認します)。
wsdl と xsd をローカル ドメイン サーバー (イントラネット) に配置すると、すべて正常に動作し、アプリケーションで適切に逆シリアル化された応答が表示されます。
フィドラーで両方の状況を比較すると、生の応答に違いは見られません。
さらにいくつかのポイント: IIS で WCF サービスをホストしていません。別のサービスをリモートで実行しています。もっとはっきりさせたら教えてください。
ありがとうございました。
編集/更新:投稿を削除しました。問題は IIS6 または IIS7 ではないようです。リモート サーバーがスキーマの場所に問題を引き起こしています。SVC プロキシ クライアントの MessagContract 名前空間で外部サーバーを指している場合、イントラネット サーバーで問題が発生し、問題なく動作します。
例:
http://testserver.xxxxxがローカル サーバーを指している場合は問題ありません。インターネット サーバーを指している場合、応答は null です。
wcf - SVCプロキシクライアントを使用する場合のXMLシリアライザークラスの使用
次のスイッチを使用してSVCプロキシクライアントを生成しました。
svcutil / wrapped / serializable / async / seralizer:XmlSerializer /out:Proxy1.cs http://url.zzz/name.wsdl
これまでのところ、私はメソッドを呼び出し、応答をすべて正常に取得します。
さらに一歩進んで、ここhttp://msdn.microsoft.com/en-us/library/aa751883.aspxでxmlSerializersについて読み、Proxy1.cs用に1つのシリアル化アセンブリを生成することができました(dllにも変換されます)。
dllの命名規則に従い、テストコンソールアプリケーションで両方のdllへの参照を追加しました。問題なく動作します。(私はパフォーマンスに何も気づきませんでしたが、わずかなプラセボさえもありませんでした)。
xmlSerializerを使用する別の方法を試し、シリアル化コードを別のアセンブリに生成し、XmlSerializerFormatAttributeを使用するサービスコントラクトでXmlSerializerAssemblyAttributeを使用しました(テストのために、掘り下げているときに必要と思われる場所に配置しました)。AssemblyNameをポイントに設定します。コンパイルされたシリアル化アセンブリに。
繰り返しますが、正常に動作しますが、パフォーマンスの変化には気づきません。
なんでそうなの?私は何か間違ったことをしていますか?または、より複雑な応答でテストする必要があります。これを確認する他の方法はありますか?パフォーマンス上の理由から、Xmlserializerを生成する必要が本当にありますか?
ありがとうございました。私はここの初心者です、あなたの経験も共有してください。私は要点の答えを探しているだけでなく、いくつかの指針も当てはまります。
wcf - WCFサービスエラーが発生しました....名前が'tns:downloadOrdersのノードタイプ'Element'が見つかりました
多かれ少なかれ完全なsvcファイルを使用してasp.netc#で作成されたプロジェクトを引き継ぎました。このサービスに接続しようとしているサードパーティがいます。DownloadOrdersアクションを実行しようとすると、エラーが発生します
これがばかげている場合は申し訳ありませんが、SOAPWebサービスについてはわかりません
OperationFormatterで無効なメッセージ本文が検出されました。名前が「DownloadOrders」で名前空間が「http://schema.example.com」のノードタイプ「Element」が見つかるはずです。名前が「tns:downloadOrders」で名前空間が「http://schema.example.com」のノードタイプ「Element」が見つかりました
私はコードを持っています
私はインターネット上でできることを推測して見つけることによっていくつかのことを試みましたが、運がありません。
どんな助けでも大いに活用されるでしょう
編集済みありがとうございますサードパーティからのリクエストです
asp.net-mvc - MVC プロジェクト内でホストされる HTTPS SVC を介した WCF のみ
MVC3 プロジェクトに WCF .svc ファイルを追加しましたが、HTTP 経由でサービスにアクセスできないようにしようとしています。
以下の構成では、私のサービスは、あるポートでは https 経由で利用でき、別のポートでは http 経由で利用できます。
どうすればこれを防ぐことができますか?
ありがとう
asp.net - JSON.net を ASP.NET サービス (.svc) の既定のシリアライザーおよびデシリアライザーとして使用する
私は何時間も無駄に探していました。
ASP.NET Web サイトで、JSON.net を WCF Web サービス (.svc) の既定のシリアライザーおよびデシリアライザーとして使用しようとしています。明確にするために、これは MVC サイトではありません。IIS 7 内でホストされている単純な古い ASP.NET 4.0 です。
私の当初の動機は、JSON.net の優れた日付処理を使用することでしたが、今はそれができるかどうかを確認したいだけです。
以下は、日付を返したり、日付を取得したりできる単純な Web サービスです。このサービスは、jQuery ajax を使用してページから呼び出されます。
私がやりたいことは、組み込みの DataContractJsonSerializer または実際に呼び出されているものの代わりに、常に JSON.net デ/シリアル化ルーチンを使用するように ASP.NET を構成することです。サービスメソッドに文字列を渡したり返したりして、シリアル化を手動で処理できることは承知していますが、可能であればそれを避けたいと思います。
.svc はシリアライゼーション ルーチンを内部化するため、これが不可能になる可能性があることはわかっています。それも納得の答えでしょう。
ありがとう!
asp.net - .multiple dot net フレームワーク (aspnet_regiis.exe) を使用した svc (wcf) の IIS 7.5 ハンドラー マッピング
IIS のハンドラー マッピングに svc がリストされていない 2008 サーバーがあります。aspnet_regiis.exe を実行すると、これらが追加されると思います ( 4932722 のように)。
しかし、その .exe は次の場所に存在します。
- "C:\Windows\Microsoft.NET\Framework\v2.0.50727"
- "C:\Windows\Microsoft.NET\Framework\v3.0"
- "C:\Windows\Microsoft.NET\Framework\v3.5"
- "C:\Windows\Microsoft.NET\Framework\v4.0.30319"
- "C:\Windows\Microsoft.NET\Framework64\v2.0.50727"
- "C:\Windows\Microsoft.NET\Framework64\v3.0"
- "C:\Windows\Microsoft.NET\Framework64\v3.5"
- "C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
どちらを選ぶべきですか?(私の推測では、両方の v4.0 のバージョンになります)
これに関連...
.svcがリストされている他のいくつかのマシンを見ると...
1つは次のことを示しています。%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
他のポイント:%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
異なるフレームワークを指す svc の複数のハンドラー マッピングを使用できますか?
ありがとう、DF
.net - @ServiceHost Debug="true" - パフォーマンスが低下しますか?
svc ファイルで Debug="true" を設定すると、パフォーマンスが低下しますか? 実稼働環境で「false」に設定することを保証するのに十分重要ですか?
ありがとう
wcf - HTTPHandler とサービス
複数のマシンにインストールされている既存の Web アプリケーションがあります。スクリプト クライアントと .net クライアントは、すべての呼び出しを他のマシンにルーティングする 1 つのマシンを介して ".asmx" サービスを利用します。
クライアント ----> |Web サイト \ 仮想ディレクトリ(HttpHandler)| ----> |他サーバー\実.asmx|
同じ機能を実行する新しい .svc サービスを追加し、そのハンドラーを追加しました (ディレクトリの構成):
asmx リクエストは正常にルーティングされますが、エンド サーバー上の新しい .svc は呼び出されず、Httphandler もスキップされます。他のマシンで .svc を直接呼び出すと、動作します。
私が得るエラーは次のとおりです。
私はすでに以下を試しました
- .svc を削除するコンパイル セクションに「buildProviders」を追加します。
- MimeTypes をクリックし、「.svc」と「application/octet-stream」を入力して保存します。
- ハンドラを追加します:
何も役に立たない、http ハンドラが呼び出されていない
ps私はAppPool .net 4.0 Integratedで作業しています