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:当我在我的网络浏览器中导航服务 url 时,调试器永远不会到达我的服务类和Run方法。

4

2 回答 2

1

嗯,很奇怪!以下是我采取但没有奏效的行动。

  • 重新启动 IIS 和 VS 2010。
  • 在 VS 2010 上编译代码并调试。
  • 编译代码并替换为 IIS 上的内容,然后重新启动 IIS。

这是我采取的行动,该项目再次开始工作。

  • 创建一个新的 MVC 项目。
  • 通过 NuGet 安装 ServiceStack MVC。
  • 将现有代码复制到新项目。
  • 在新项目的现有代码中重命名命名空间。
  • 在 VS2010 上调试,项目开始像魅力一样工作。

当我将项目发布到 IIS 上的现有网站时,出现以下错误:

AppHost instance has been already set

但是,为了传递错误,我删除了现有网站并创建了一个新网站。比,我在新网站上复制了新项目的输出。

一切又像魅力一样开始工作。

但我仍然不知道为什么会出现错误。

我希望这对可能有同样问题的人有所帮助。

于 2012-08-28T12:09:10.173 回答
1

我因在路线中使用错误的模型而收到此错误。

所以:

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

应该

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