我正在将项目移植到.NET Core并且使用该方法有一些逻辑.你知道.NET Core支持Abort()Thread类中的方法吗?
我花了大约4个小时调查,仍然无法找到如何运行已发布的应用程序(dotnet publish)
现在,我可以下载源到我的远程机器,然后调用dotnet build和dotnet run-然后我的应用程序运行的预期.但我想在没有源文件的情况下将DLL(或*.so?)发布到我的VPS.
官方文档说什么?在project.json中定义命令
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://unix:/var/aspnet/HelloMVC/kestrel.sock",
}
Run Code Online (Sandbox Code Playgroud)
但它是obsolette,不是吗?
那么默认样品呢?
在默认的VS2015示例解决方案中,他们使用的是publish-iis,完整的.NET框架和IIS服务器,但是没有关于Linux上的部署.
postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
Run Code Online (Sandbox Code Playgroud)
这是我的dotnet信息
.NET Command Line Tools (1.0.0-preview1-002702)
Product Information:
Version: 1.0.0-preview1-002702
Commit Sha: 6cde21225e
Runtime Environment:
OS Name: Windows
OS Version: 10.0.10586
OS Platform: Windows
RID: win10-x64
Run Code Online (Sandbox Code Playgroud)
.NET Core RC2
尝试将应用程序从.net 4.5移植到.net核心以供客户端使用.我注意到CreateType不再是TypeBuilder的一部分.我已经搜索了多个新的反射库而没有运气.有谁知道如何移植这个?
有问题的代码:
typeBuilder.CreateType()
Run Code Online (Sandbox Code Playgroud) 什么是(最接近的).NET Core 1.0等价物
System.Threading.Thread.CurrentThread.ManagedThreadId
Run Code Online (Sandbox Code Playgroud)
?
更新
由于@svick澄清了System.Threading.Thread.CurrentThread.ManagedThreadId处于其通常的位置.请参阅下面的屏幕截图.问题已经结束.(目前还不清楚CurrentThread属性的System.Threading.Thread实例是如何以及何时初始化为非空值(默认(System.Threading.Thread)总是== null?)但这不是本主题的主题.)
更新2
实际上,System.Threading.Thread.CurrentThread.ManagedThreadId在.NET Core 1.0应用程序项目中可用,该项目已在其project.json中定义:
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
Run Code Online (Sandbox Code Playgroud)
并且在.NET Core 1.0类库项目中缺少,该项目已在其project.json中定义:
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
Run Code Online (Sandbox Code Playgroud)
如何在.NET Core 1.0类库项目中使System.Threading.Thread.CurrentThread.ManagedThreadId可用?
在我升级到Asp.Net RC2后,开始发生了一些奇怪的事情.我首先想到它可能与我移植应用程序的方式有关.但是,当我运行它时,创建一个新的默认Web应用程序会产生相同的结果:
注意头部中的所有东西现在都在体内(不知道为什么).这导致一些视觉问题.这是一个(沿着其他几个),在导航栏之后和身体之前有一个间隙:
过了一段时间,我尝试在Edge和Firefox中运行,似乎问题只发生在Google Chrome上.我绝对确保我没有BOM字符.
asp.net-core-mvc asp.net-core asp.net-core-1.0 .net-core-rc2
我试图通过IIS运行默认的ASP.NET核心Web应用程序(VS 2015中的Web应用程序模板).
我按照从文档的说明这里例如,设置了一个"无托管代码"应用程序池,并指着位置的物理路径web.config的文件.
当我尝试浏览网站根目录时,http://localhost我收到此错误:
HTTP错误502.3 - 错误的网关尝试路由请求时出现连接错误.
最有可能的原因是:CGI应用程序没有返回一组有效的HTTP错误.由于父网关中的错误,充当代理或网关的服务器无法处理请求.
事件查看器指出:
无法使用命令行'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll'启动进程,错误代码='0x80004005'.
此错误显示我已替换占位符
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
Run Code Online (Sandbox Code Playgroud)
在web.config与需要的值
<aspNetCore processPath="dotnet" arguments="./bin/Debug/netcoreapp1.0/WebApplication2.dll"
Run Code Online (Sandbox Code Playgroud)
(更新:发布时替换这些占位符)
根据我安装的故障排除说明.NET Core Windows Server Hosting Bundle并重新启动服务器.
通过dotnet工作从命令行运行
想知道现在该尝试什么.
我有一个使用ASP.NET Core RC2在MVC6中构建的Intranet站点.我想获取访问Intranet站点的人的Windows用户名.
因此,如果Jim访问内部网站点,我希望该站点接收"Domain\Jim",而如果Anne访问内部网站,我希望该站点接收"Domain\Anne".
我的IIS服务器上仅启用了Windows身份验证,禁用了匿名身份验证.
我的网站设置为使用Windows身份验证并禁用匿名身份验证.
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
通过调试我可以使用System.Security.Principal.WindowsIdentity.GetCurrent().Name,但当然在IIS服务器上返回"IIS APPPOOL\SiteName".
我使用HttpContext从旧版本的ASP.NET中找到了许多示例,我尝试使用以下内容将其注入到我的控制器中,但userName最终为null.
//Startup.cs
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//HomeController.cs
public HomeController(IHttpContextAccessor _accessor)
{
string userName = _accessor.HttpContext.User.Identity.Name;
}
Run Code Online (Sandbox Code Playgroud)
将Windows用户名传递给ASP.NET Core RC2 MVC6中的Intranet站点的正确方法是什么?
从ASP.NET Core RC1迁移到RC2时,我的TagHelper无法解析注入的IUrlHelpers.
[HtmlTargetElement("usermenulink", Attributes = "controller-name, action-name, menu-text, menu-item, active-item")]
public class UserMenuItemTagHelper : TagHelper
{
public IUrlHelper _UrlHelper { get; set; }
public UserMenuItemTagHelper(IUrlHelper urlHelper)
{
_UrlHelper = urlHelper;
}
//... abbreviated
}
Run Code Online (Sandbox Code Playgroud)
相反,我得到一个例外:
处理请求时发生未处理的异常.
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Mvc.IUrlHelper' while attempting to activate '...TagHelpers.UserMenuItemTagHelper'.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在使用ASP.NET Core RC2,当我运行dotnet run我的应用程序时总是在"生产"中运行.我无法将其更改为"开发".
我有以下launchSettings.json文件:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:26088/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MVCCoreRc2App": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定为什么dotnet在设置时在"生产"中运行应用程序"ASPNETCORE_ENVIRONMENT": "Development".
这在ASP.NET Core RC1中有效.我错过了什么?
我需要有关作为linux deamon托管网络核心控制台或asp.net应用程序的信息.Microsoft.Hosting.WindowsService已经支持将应用程序作为Windows服务托管,但我需要类似于linux deamons的东西.
.net-core-rc2 ×10
asp.net-core ×5
.net-core ×3
c# ×2
.net ×1
daemon ×1
iis-7 ×1
linux ×1
project.json ×1
service ×1