我有一个Web API项目,它使用StructureMap作为其DI.它已经工作了一段时间,但我在Web API帮助页面(Microsoft.AspNet.WebApi.HelpPage)中遇到了一些问题,其中由于空堆栈而抛出InvalidOperationExceptions.
我使用帮助页面创建了一个新的Web API项目,它可以正常工作,直到我添加StructureMap.WebApi2包,而前面提到的异常在这里抛出,在ModelDescriptionLink.cshtml中
else if (modelDescription is CollectionModelDescription)
{
var collectionDescription = modelDescription as CollectionModelDescription;
var elementDescription = collectionDescription.ElementDescription;
@:Collection of @Html.DisplayFor(m => elementDescription.ModelType, "ModelDescriptionLink", new { modelDescription = elementDescription })
}
else
{
@Html.DisplayFor(m => modelDescription)
}
Run Code Online (Sandbox Code Playgroud)
@:Collection of @Html.DisplayFor(m => elementDescription.ModelType, "ModelDescriptionLink", new { modelDescription = elementDescription })当它试图显示该模型的资源描述的链接时,它会被抛出.
这是一条精简的路线仍然会导致异常:
[Route("Test")]
public IHttpActionResult Post([FromBody] IEnumerable<MySimpleModel> models)
{
return null;
}
Run Code Online (Sandbox Code Playgroud)
试图访问此路由的文档http://localhost:21966/Help/Api/POST-Test会导致异常:

我只能找到一个有相同问题的人的例子,他们的解决方案是从StructureMap切换到Ninject或避免使用null检查的异常.
这是堆栈跟踪的顶部:
[InvalidOperationException: Stack empty.]
System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) +52
System.Collections.Generic.Stack`1.Peek() +6693321
System.Web.WebPages.WebPageBase.get_Output() …Run Code Online (Sandbox Code Playgroud) 我已为 Azure 上的应用程序服务启用应用程序日志记录到 blob。
xxxxx-#####.applicationLog.csv在我创建的 Azure 存储帐户中每小时都会创建一个类似的文件,但该文件实际上并不包含我的应用程序日志配置详情:
Program.cs我通过以下方式配置登录:(.ConfigureLogging(log => log.AddAzureWebAppDiagnostics())这在 .NET Framework 而不是 .NET Core 运行时运行时显然是必要的)总之:当我在 Azure 门户中以这种方式配置 Azure 存储时,不会在 Azure 存储中创建包含应用程序日志的文件。
我试图使用正则表达式来匹配某个字符,只有当它不与某个字符直接相邻时。(对于 Calibre 中的电子书)
具体来说,我想匹配所有”不在句子末尾的内容,这意味着它们将位于常规字符之间,而不是尖括号或空格之间。我认为”[^<]会起作用,但这会同时选择引号和下一个字符,而不仅仅是字符本身。我也不知道如何做 OR 来检查空间。我假设它会是这样的,”[^<]|[^ ]但这也不对。
这是我想要匹配的示例:
在尖括号旁边:
<p class="calibre1">“I”m tired!”</p>
旁边空间: <p class="calibre1">“I”m tired!” he said</p>
只I”m应选择其中的引号(并且只选择引号本身)
如果对此有明显的答案,我很抱歉,但我一直在阅读 Python 的正则表达式文档,但我无法弄清楚。:(