現在、私は実際には維持したくない古いレガシーWCFサービスを持っていますが、いくつかのクライアントにはまだアクセス権があります。現在AzureのWEB API 2ですべてのAPIサービスを実行しています。下位互換性を有効にするには、私はそうのようなルーティング属性を使用したWEB APIのWCFルーティングをシミュレートするために期待していた。WEB APIでのWCFルートのシミュレーション2
[RoutePrefix("registration.svc")]
public class RegistrationDeprecatedController : ApiController
{
[HttpPost]
[Route("login")]
public async Task<HttpResponseMessage> Login(CredentialModel creds)
{...
はローカルこれは夢のように実行します。私がAzure AppServiceに公開するとすぐに、私は404が見つかりません。問題の特定のルート:
/registration.svc/login
私の疑いがIISホスティングは、WCF呼び出しとして要求を処理する.SVCルートファイル仲間を持っていることです。オンラインでの広範な検索は、私がこの関連付けをどのように変更することができるか、またはこれが本当であるかどうかを確認することについて何かを見つけることに失敗しました。どのように修正するか、または代替の解決策に関するアイデアは非常に高く評価されます。
更新
は解決策を見つけたが、その完璧ではありません。 AppServiceインスタンス上のIISに直接接続し、ハンドラマッピングを変更することが可能であることを発見しました。これは完全ではありません。新しいインスタンスやデプロイメントスロットを作成するときに手動で変更する必要があり、プロセス全体を自動化することが望ましいからです。
誰かがこれをやりたい場合は、benjamin perkinsのチュートリアルに従うことができます。私はIIS Manager for remote administration拡張機能をWindows 10にインストールする必要がありましたが、これは機能するためです。 * .svcに関連付けられているすべてのマッピングを削除しました。ルーティングが機能しています。
iisが処理する前にインターセプトできるように、特定のパスのハンドラを追加してください – Nkosi