0

突然、以下のように ServiceStack MVC サービス アプリケーションでエラーが発生し始めました。

{"The given key was not present in the dictionary."}    
System.Exception {System.Collections.Generic.KeyNotFoundException}

およびスタックトレース:

  at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at ServiceStack.WebHost.Endpoints.Utils.FilterAttributeCache.GetRequestFilterAttributes(Type requestDtoType) in C:\src\ServiceStack\src\ServiceStack\WebHost.Endpoints\Utils\FilterAttributeCache.cs:line 44
   at ServiceStack.WebHost.Endpoints.EndpointHost.ApplyRequestFilters(IHttpRequest httpReq, IHttpResponse httpRes, Object requestDto) in C:\src\ServiceStack\src\ServiceStack\WebHost.Endpoints\EndpointHost.cs:line 201
   at ServiceStack.WebHost.Endpoints.RestHandler.ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, String operationName) in C:\src\ServiceStack\src\ServiceStack\WebHost.Endpoints\RestHandler.cs:line 79
   at ServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.ProcessRequest(HttpContext context) in C:\src\ServiceStack\src\ServiceStack\WebHost.Endpoints\Support\EndpointHandlerBase.cs:line 150
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

エラーや何が問題なのかわかりません。私のアプリは機能していましたが、現在は機能していません。

これを修正する方法はありますか?

編集 1: Web ブラウザーでサービスの URL をナビゲートすると、デバッガーはサービス クラスとRunメソッドに到達しません。

4

2 に答える 2

1

ルートで間違ったモデルを使用したためにこのエラーを受け取りました。

そう:

Routes.Add<ModelA>("/path/to/service");

する必要があります

Routes.Add<ModelB>("/path/to/service");
于 2012-09-10T05:09:39.400 に答える
1

まあ、かなり奇妙です!これが私が行ったアクションであり、機能しませんでした。

  • IIS と VS 2010 を再起動します。
  • コードをコンパイルし、VS 2010 でデバッグします。
  • コードをコンパイルして IIS のコンテンツに置き換え、IIS を再起動します。

これが私が取った行動であり、プロジェクトは再び動き始めました。

  • 新しい MVC プロジェクトを作成します。
  • NuGet 経由で ServiceStack MVC をインストールします。
  • 既存のコードを新しいプロジェクトにコピーします。
  • 新しいプロジェクトの既存のコードで名前空間の名前を変更します。
  • VS2010でデバッグすると、プロジェクトが魅力的に機能し始めました。

プロジェクトを IIS 上の既存の Web サイトに公開すると、次のエラーが発生しました。

AppHost instance has been already set

ただし、エラーを渡すために、既存の Web サイトを削除し、新しい Web サイトを作成しました。それより、新しいプロジェクトの出力を新しい Web サイトにコピーしました。

すべてが再び魅力のように働き始めました。

しかし、なぜエラーが発生したのかはまだわかりません。

これが同じ問題を抱えているかもしれない人の助けになることを願っています。

于 2012-08-28T12:09:10.173 に答える