小编Nee*_*ack的帖子

.NET Core发布到IIS - HTTP错误502.3 - 错误网关 - 指定的CGI应用程序遇到错误,服务器终止了该进程

我正在尝试向IIS发布一个.NET Core ASP.NET网站,我将其从RC2升级到RTM.

作为一个完整性检查,我成功地从Visual Studio 2015发布了模板/示例"ASP.NET核心Web应用程序(.NET Framework)"应用程序.

但出于某种原因,在发布RTM升级的应用程序时,我收到HTTP错误502.3 - 错误网关指定的CGI应用程序遇到错误,服务器终止了该进程.

该站点正在从Visual Studio运行IIS Express.

我该怎么调试呢?有人有主意吗?

错误502.3

web.config中

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath=".\MyApp.exe" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

project.json

{
  "buildOptions": {
  "emitEntryPoint": true,
  "preserveCompilationContext": true,
  "warningsAsErrors": true
},
"dependencies": {
  "Microsoft.AspNetCore.Diagnostics.Elm": "0.1.0",
  "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
  "Microsoft.AspNetCore.Authorization": "1.0.0",
  "Microsoft.AspNetCore.Diagnostics": "1.0.0",
  "Microsoft.AspNetCore.Hosting": "1.0.0",
  "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
  "Microsoft.AspNetCore.Http.Extensions": "1.0.0",
  "Microsoft.AspNetCore.Localization": "1.0.0",
  "Microsoft.AspNetCore.Mvc": "1.0.0",
  "Microsoft.AspNetCore.Routing": "1.0.0",
  "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
  "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
  "Microsoft.AspNetCore.Session": "1.0.0",
  "Microsoft.AspNetCore.StaticFiles": "1.0.0",
  "Microsoft.Extensions.Caching.SqlServer": "1.0.0", …
Run Code Online (Sandbox Code Playgroud)

.net iis .net-core asp.net-core

19
推荐指数
2
解决办法
2万
查看次数

从动作返回文件时,流是否会被处置?

我正在写一个字符串,MemoryStream我需要将流返回到Controller Action,所以我可以将其作为文件发送下载.

通常,我将Stream包装在using语句中,但是,在这种情况下,我需要返回它.我退货后还能处理吗?或者我需要以某种方式自行处理它?

//inside CsvOutputFormatter
public Stream GetStream(object genericObject)
{
    var stream = new MemoryStream();
    var writer = new StreamWriter(stream, Encoding.UTF8);
    writer.Write(_stringWriter.ToString());
    writer.Flush();
    stream.Position = 0;
    return stream;
}
Run Code Online (Sandbox Code Playgroud)

Controller返回文件的Action:

[HttpGet]
[Route("/Discussion/Export")]
public IActionResult GetDataAsCsv()
{
    var forums = _discussionService.GetForums(_userHelper.UserId);

    var csvFormatter = new CsvOutputFormatter(new CsvFormatterOptions());

    var stream = csvFormatter.GetStream(forums);
    return File(stream, "application/octet-stream", "forums.csv");

    //is the stream Disposed here automatically?
}
Run Code Online (Sandbox Code Playgroud)

c# memorystream streamwriter asp.net-core-mvc asp.net-core

16
推荐指数
1
解决办法
3758
查看次数

构建时出现.NET Core错误:错误MSB4062 Microsoft.Build.Tasks.ResolveComReference

我正在研究一个.net核心网络应用程序(针对net461).该应用程序需要引用COM DLL.

我添加了COM引用,应用程序仍然构建在我的开发机器上.但是,在构建服务器上,它无法使用此错误构建:

C:\ Program Files(x86)\ dotnet\sdk\2.0.0\Microsoft.Common.CurrentVersion.targets(2604,5):错误MSB4062:无法从"Microsoft.Build.Tasks.ResolveComReference"任务加载程序集Microsoft.Build.Tasks.Core

搜索了一下后,似乎这是一个非常罕见的错误.任何人都知道错误是什么和/或如何解决它?


更新:似乎dotnet CLI不支持COM引用.Visual Studio直接在后台使用msbuild,但在构建服务器上,我使用的是dotnet CLI命令.

解决方法:

  1. 引用COM dll并重建.Visual Studio将生成一个interop dll.它将被命名为Interop.MyComDLL.dll.它位于构建输出目录中.
  2. 将生成的Interop dll复制到应用程序中的某个位置(我只是在根应用程序级别使用了/ dlls文件夹).
  3. 删除COM dll参考.
  4. 在Interop dll中添加直接引用(依赖项>添加引用...>在Visual Studio中浏览)

c# asp.net-mvc .net-core asp.net-core

12
推荐指数
1
解决办法
2283
查看次数

用于计算矩阵行列式的最快算法?

对于一篇研究论文,我被指派研究用于计算矩阵行列式的最快算法.

我已经知道LU分解Bareiss算法都在O(n ^ 3)中运行,但在做了一些挖掘之后,似乎有一些算法运行在n ^ 2和n ^ 3之间.

(参见第113-114页)和此(参见第198页)表示存在一个在O(n ^ 2.376)中运行的算法,因为它基于Coppersmith-Winograd的乘法矩阵算法.但是,我还没有找到关于这种算法的任何细节.

我的问题是:

  1. 用于计算矩阵行列式的最快创建(非理论)算法是什么?
  2. 我在哪里可以找到有关这种最快算法的信息?

非常感谢.

algorithm complexity-theory matrix linear-algebra determinants

8
推荐指数
1
解决办法
2万
查看次数

如何在ASP.NET Core cookie身份验证中注销所有用户?

我正在使用带有CookieAuthentication的ASP.NET Core MVC.有没有办法可以立刻签署所有用户?我尝试重置IIS - 没有用.我尝试删除所有用户的会话(我使用数据库进行会话存储) - 没有用.

有任何想法吗?

asp.net asp.net-core-mvc asp.net-core

7
推荐指数
1
解决办法
2122
查看次数

配置.NET Core以使用x86 SDK

我正在尝试更改我的.NET Core Web应用程序以使用x86版本的.NET Core SDK.

我从这里安装了x86版本.我可以在C:\ Program Files(x86)\ dotnet\sdk\1.0.0-preview2-003131中看到它

我将global.json更新为:

{
    "projects": [ "src" ],
    "sdk": {
        "version": "1.0.0-preview2-003131",
        "architecture": "x86"
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

该项目配置为使用.NET Core SDK版本1.0.0-preview2-003131,该版本未安装或无法在路径C:\ Program Files\dotnet下找到.构建和运行此项目需要这些组件.下载global.json中指定的.NET Core SDK版本,或将global.json中的SDK版本更新为已安装的版本.

我想我需要告诉我的应用程序查看C:\ Program Files(x86)\ dotnet

我该怎么做呢?

谢谢你的帮助!

.net .net-core asp.net-core asp.net-core-1.0

6
推荐指数
1
解决办法
3756
查看次数

SmtpClient.send(MailMessage) 在电子邮件的正文中添加一个额外的句点

我正在使用 System.Net.Mail.SmtpClient。

我建立我的MailMessage。IsBodyHtml设置为真。Body 是一些带有一些链接的 html。

有时,会发生一些奇怪的行为 - 将在其中一个链接中添加一个额外的句点。例如,链接将在 MailMessage 正文中设置为:

<a href="http://www.myapp.com/company/contact">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)

但收到的电子邮件显示有一个额外的时期:

<a href="http://www.myapp..com/company/contact">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)

真正奇怪的行为是有时将额外的时间段添加到不同的链接,有时根本不会添加!

这是 System.Net.Mail.SmtpClient 的错误吗?因为 MailMessage 中的正文在发送时没有额外的时间段:

_smtp.Send(message); //message.Body has no extra period during sending
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectorywhich 将电子邮件写入文件。

更新: 我不认为这实际上修复了它,但是通过设置message.BodyEncoding = System.Text.Encoding.UTF8;,我似乎无法重现该错误。任何想法为什么可能已经修复了它?

c# asp.net smtp system.net.mail smtpclient

6
推荐指数
0
解决办法
575
查看次数

解密 ASP.NET Core 中的“.AspNetCore.Session”cookie

在 Asp.Net core 中,当您将应用程序配置为app.UseSession(). 默认情况下,cookie 称为“.AspNetCore.Session”。它的值标识要使用的会话。目前,我将会话数据保存在 SQL 服务器上。我需要知道“.AspNetCore.Session”的解密值,以便我可以在数据库中查找会话。

有没有办法解密这个值?我知道 ASP.NET 必须以某种方式在幕后完成它。

c# asp.net asp.net-core-mvc asp.net-core asp.net-core-1.0

6
推荐指数
1
解决办法
9859
查看次数

停靠和浮动时设置QDockWidget边框

我正在尝试设计我的风格 QDockWidget,使其在停靠和漂浮时具有边框。

我试过了:

QDockWidget 
{
    border: 5px solid purple;
}
Run Code Online (Sandbox Code Playgroud)

但这仅在浮动时产生边界。停靠后,边界就消失了。

我该如何解决?

qt styles qdockwidget qtstylesheets

5
推荐指数
1
解决办法
2378
查看次数

ASP.NET CORE 中是否有与 paths.IgnoreRoute(...) 等效的函数?

在 ASP.NET MVC 4 中,我可以使用以下方法忽略某些路由:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{*old}", new {old=@"previous(/.*)?"});
}
Run Code Online (Sandbox Code Playgroud)

.NET Core 没有IgnoreRoute. 有没有办法在.NET Core 中实现这一点?也许一些自定义中间件?

asp.net asp.net-mvc asp.net-routing asp.net-core-mvc asp.net-core

5
推荐指数
0
解决办法
4736
查看次数