問題タブ [webget]
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.
c# - WebGetのWCFResponseFormat
WCFは、ServiceContractのWebGetアノテーションのResponseFormat属性に2つのオプションを提供します。
ResponseFormatのオプションは、WebMessageFormat.JsonとWebMessageFormat.Xmlです。独自のWebメッセージ形式を作成することはできますか?クライアントがfoo()メソッドを呼び出すと、jsonまたはxmlラッパーなしで生の文字列を取得するようにしたいと思います。
.net - WCF WebGetAttribute と WebInvokeAttribute の比較
WebGetAttribute は、Method = "GET" の WebInvokeAttribute の単なる構文糖ですか? それとも根本的な違いがありますか?
wcf - WCF WebGet と ICollection<>
REST WCF サービスからジェネリック ICollection を返そうとしています。以下は可能でしょうか?
Web ブラウザーからこの操作を実行しようとすると、エラーが発生します。私のWCFトレースを見ると、次のことがわかります。
タイプ 'System.String[]' (操作 'GetStrings'、コントラクト 'WebConfigurationManager' の場合) のパラメーターをシリアル化できません。これは、メソッド内の正確なタイプ 'System.Collections.Generic.ICollection`1[System.String]' ではないためですシグネチャであり、既知の型のコレクションには含まれていません。パラメーターをシリアル化するには、ServiceKnownTypeAttribute を使用して、操作の既知の型のコレクションに型を追加します。
ienumerable - IEnumerable を使用したデータのシリアル化WebGet で
重複の可能性:
WCF、LINQ、JSON を使用している場合、タイプ 'System.Linq.Enumerable…' のパラメーターをシリアル化できません
やあ、
私のメソッド シグネチャがこのように見える場合、正常に動作します。
署名がこのように見える場合
次のエラーが表示されます: タイプ 'XYZT+<WebMethod>d__2c' (オペレーション 'WebMethod'、コントラクト 'IService') のパラメーターをシリアル化できません。正確なタイプ 'System.Collections.Generic.IEnumerable`1[XYZT] ではないためです。 ' メソッド シグネチャにあり、既知の型のコレクションにはありません。パラメーターをシリアル化するには、ServiceKnownTypeAttribute を使用して、操作の既知の型のコレクションに型を追加します。
追加してみました。ServiceKnownType(typeof(IEnumerable))
同じエラー。
これは 2010 ベータ 2 のバグですか、それとも今後も正しいと思われますか?
ありがとう
c# - URLでネットワークパスを渡す
メソッドを使用してWCFサービスを作成しています
fullFileNameは、ネットワークファイルまたはホスト上のファイルへのフルパスです。
ホストは、webHttpBindingと動作構成を備えたWindowsサービスです。次のようなブラウザからこれを呼び出したい
... / acl / f = file:// \ server \ share \ file.ext ... / acl / f = file:// c:\file.extを試しました
ブラウザに「エンドポイントが見つかりません」と表示されます。
... / acl / f = file.txtを呼び出すことができ、ファイルが見つからなかったことを示す適切な応答がサービスから返されるため、これが機能することはわかっています。そのため、URIでスラッシュを使用しないと、メソッドが正しく呼び出されます。
これについての考えは大歓迎です。
ありがとう、hotmailのbeezlerco ...
batch-file - Ado.net dataservices BeginExecuteBatch呼び出しは、オブジェクトがターゲットタイプと一致しない本番サーバーでの開発失敗で機能します
BeginExecuteBatchを介してバッチとして[WebGet]サービス操作に渡されるado.netdataservices1.0呼び出しがあります。
開発サーバーではすべてが完全に機能します。プロジェクトでは、cassini Webサーバーの代わりにIISを使用して、本番サーバーにできるだけ近づけるように構成されています。
本番サーバーに公開すると、オブジェクトがターゲットタイプと一致しない場合に失敗するバッチ呼び出しを除いて、すべてのサービス操作が完全に機能します。。私はこれの原因を見つけることができませんでした。
バッチで使用されたURLをコピーしてブラウザーに貼り付けることにより、[WebGet]サービスに対して単一の非バッチスタイルのGET操作を実行することもできます。
これを解決するのに役立つ情報を見つけることができませんでした。ガイダンスをいただければ幸いです。
ありがとう、マイクM。
フィドラーからのエラーメッセージ:
HTTP / 1.1 500内部サーバーエラーコンテンツタイプ:application / xml DataServiceVersion:1.0;
このリクエストの処理中にエラーが発生しました。オブジェクトがターゲットタイプと一致しません。System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)at System.Reflection.RuntimeMethodInfo.Invoke(Object obj、BindingFlags invokeAttr、バインダーバインダー、Object []パラメーター、CultureInfoカルチャー、ブールskipVisibilityChecks)at System.Reflection System.Data.Services.RequestUriProcessor.CreateFirstSegment(IDataService service、文字列識別子、ブール値checkRights、文字列queryPortion、ブール値&crossReferencingUrl)での.RuntimeMethodInfo.Invoke(Object obj、BindingFlags invokeAttr、バインダーバインダー、Object []パラメーター、CultureInfoカルチャー) System.Data.Servicesの.Data.Services.RequestUriProcessor.CreateSegments(String []セグメント、IDataServiceサービス)。
c# - ODataおよびカスタムWCFWebGetメソッド
ODataエンドポイントを作成しました(エンティティフレームワーク、WCFデータサービスを使用)
次のようなカスタムテストWebGetテストメソッドを追加しました。
および構成行:
ただし、URLをどのように指定しても、テキストパラメータを入力することはできません。(常にnullです)。
だから:
http://localhost/myservice.svc/SplitString/testtext
動作しません(パラメータがnullであるため、例外がスローされます)。パラメータを機能させるために使用する必要がある正しいURL形式(またはUriTemplate)は何ですか?
私が見つけたodataとWebGetの唯一の例には、パラメーターを持たないサンプルメソッドしかありません。
wcf - WCFサービスのWebGetUriTemplate変数に「%26」を渡すことができませんか?
この宣言された操作を使用するWCFサービスがあります。
ただし、URLを呼び出そうとするとTest/You%26Me
、IISはエラーを返します。
私の目標は、URLエンコードを介してURIにアンパサンドを許可することです:%26
ワイルドカードは役に立ちませんでした。セキュリティ機能を無効にせずにこのエラーを防ぐ方法はありますか?
wcf - WCF: 可変数のパラメーターを WebGet 対応サービスに渡す方法
WebGetAttribute と UriTemplate を使用して REST インターフェイスを公開することにより、可変数のキーと値のペアをサービスに渡そうとしています。やりたいこと:
クライアント側では、いくつかのキーを数回指定します。例:
hllp://localhost/MyService/Query/Select?field=Name&fieldsort=asc&field=ID
最初のアプローチは、次の UriTemplate を使用し、キーと値のペアを手動で分解することでした。
ただし、これはセグメントにのみ適用されるため、
hllp://localhost/MyService/Query/field=Val%3Dueのような URL は
WCF によって自動的にデコードされ、"field=Val=ue" が Service メソッドに渡されます。
さらに悪いことに、二重にエンコードされた URL も完全にデコードされます:
hllp://localhost/MyService/Query/field=Val%253Due
は再び「field=Val=ue」になります。
生のクエリ文字列にアクセスする方法はありますか? そうでない場合、別の方法で UriTemplate を拡張/使用して、動的な数のキーと値のペアを操作できますか?
wcf - IIS で wcf サービスをホストしている場合、REST メソッドにアクセスできない
クラス GreetService のメソッドを公開する WCF REST サービスがあります。
また、Global.asax にルートを登録しました。
これをビジュアル スタジオから直接実行すると、UriTemplate を利用して、 http://localhost:5432/GreetService/greet/JohnDoeへの GET 呼び出しを使用してこのメソッドを呼び出すことができ ます。
ただし、Greet.svc ファイルを作成してこれを IIS7 に展開した後、次の動作を観察しています。
- http://localhost:5432/Greet.svcを呼び出すと、サービスが作成されたと表示されます
- wcftestclient をhttp://localhost:5432/Greet.svc?wsdlにポイントして、GreetName() を直接呼び出すことができるテスト クライアントを生成できます。
- ただし、http://localhost:5432/Greet.svc/GreetService/greet/JohnDoeまたはhttp://localhost:5432/Greet.svc/greet/JohnDoeを呼び出すことはできませんが、指定したのでできると期待していましたIIS7 でホストする前に、対応する web.config ファイル内の空の相対エンドポイント アドレス。
WebGetAttribute が IIS で機能しない理由はありますか? または、私が間違っていることは他にありますか?
編集:これは、IIS が使用するディレクトリにある web.config ファイルの ServiceModel 部分です。
編集2:完全を期すために、ここに私の完全なweb.configファイルがあります: