标签: dnx

如何使ASP.Net 5参考正常.Net类库不在您的解决方案中

早些时候我问了这个问题并得到了一个有效的答案.为了使您的ASP.Net 5应用程序能够引用以.Net Framework 4.5为目标的普通.Net类库,您必须从project.json文件中删除'"dnxcore50":{}'引用.

大.这适用于一个没有做任何事情的简单ClassLibrary项目.

现在我想尝试使用更复杂的类库.例如,引用其他NuGet包的类库(例如HtmlAgilityPack)和相同的技术不起作用.

这非常令人沮丧.我有点傻眼,简单地引用类库不再适用于新版本的ASP.Net.

似乎要删除的"功能"之一是能够为不在您的解决方案中的项目引用已编译的DLL."浏览"按钮从ASP.Net 5项目的"添加引用"对话框中消失:

在此输入图像描述

经典项目仍然有浏览按钮:

在此输入图像描述

为什么?如何引用我机器上的类库,但我不想包含在我的项目中?

visual-studio-2015 dnx asp.net-core

4
推荐指数
1
解决办法
1806
查看次数

使本地TFS构建代理程序使用v14 msbuild工具

我有几个ASP.NET vNext应用程序,我希望我的CI服务器也能够构建它们.我的本地计算机和CI服务器都运行VS2015 RC.然后我们有了VS Online和一个本地构建控制器 - 这是提到的服务器.

但是,我无法进行构建,因为它似乎在寻找v12工具 - 它不包含任何DNX.

所以 - 构建解决方案给出: 需要安装Dnx Runtime包. 有关详细信息,请参阅输出窗口

需要安装Dnx Runtime包.有关详细信息,请参阅输出窗口

安装-因为它与VS2015 RC,AFAIK来了.所以我认为构建模板不使用v14工具.我下载了默认Git模板v12.确实它说:

<this:Process.BuildProcessVersion>12.0</this:Process.BuildProcessVersion>
Run Code Online (Sandbox Code Playgroud)

所以我将其切换为14,上传模板,运行构建.然后:

用于此构建的构建控制器不会

异常消息:用于此构建的构建控制器不支持构建定义使用的模板文件的版本.模板文件的版本是14.0.此构建控制器的最大支持版本为12.0.0.0.

所以试图解决这个问题 - 让我看到这个论坛问题:

然后,您需要更改所涉及的MSBuild版本,而不是更改BuildProcessVersion属性.打开构建过程模板,找到Run MSBuild for Project活动,将ToolPath属性更改为2013版本的msbuild

所以 - 我检查了模板 - 没有ToolPath版本.但是有一个ToolVersion属性 - 我将尝试设置为14:

在此输入图像描述

简而言之,我的问题是:如何在我的构建服务器上构建ASP.NET vNext应用程序,该服务器已安装VS2015RC - 但是正在使用v12工具构建?

UPDATE

似乎问题不在于使用错误的工具,而在于在服务帐户(TFS代理正在执行)运行时查找/使用正确的DNX运行时更多.我为DNX团队添加了一个问题:https://github.com/aspnet/dnx/issues/2239.

msbuild tfsbuild vs-2015-preview dnx

4
推荐指数
1
解决办法
6936
查看次数

如何获取和设置Visual Studio 2015 ASP.net 5项目的透明npm代理

我的包project.json使用了node package manager.我nuget在我的Visual Studio 2015 ASP.NET 5Beta 8项目中添加了一个新包.

当我在家上网时,我可以获得下载包.但是当我在办公室时,如果我添加一个新包,我在控制台中会出现以下错误:

PATH =.\node_modules.bin; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;%PATH%; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git C:\ Users\USERNAME.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta8\bin\dnx.exe"C:\Users\USERNAME.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta8\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll"restore"C:\ PROJFOLDER\PROJNAME" -f"C:\ Program Files(x86)\ Microsoft Web Tools\DNU"Microsoft .NET开发实用程序Clr-x86-1.0.0-beta8-15858

GET https://www.nuget.org/api/v2/FindPackagesById()?id='AutoMapper '错误:FindPackagesById:AutoMapper发送请求时发生错误.

在Visual Studio 2015解决方案资源管理器中

在此输入图像描述

我明白了:

包恢复失败

如果我nuget在一个不使用的经典类库中使用,npm那么我可以下载相同的包,所以问题似乎仅限于npm

在研究错误时,它被列为GitHub上的一个问题.此问题列出的解决方法是将Windows环境变量设置为公司代理.

但是,我没有在Internet Explorer中设置代理设置.

在此输入图像描述

我的问题:

  1. 如何确定我使用的代理?

  2. 除了设置环境变量之外,还有其他方法可以使其工作.我尝试了dnx.config解决方法,但它没有用.

  3. 我在工作和家里都使用笔记本电脑.他们是一个解决方案,我不必改变办公室和家庭之间的设置?

npm nuget visual-studio-2015 dnx asp.net-core

4
推荐指数
1
解决办法
2227
查看次数

ASP.NET 5(RC1)Bad Gateway:指定的CGI应用程序遇到错误,服务器终止了该进程

我在Azure Web App中运行ASP.NET 5项目.

当使用大约1.5mb或更大的文件(表单数据)调用API端点时,我会502 Bad Gateway在响应主体中看到以下消息:

指定的CGI应用程序遇到错误,服务器终止了该进程.

奇怪的是,当上传较小的文件时,通话工作正常.它似乎产生了502大约1.5mb的标记,但它并不完全一致.

我正在使用ASP.NET 5 RC1.

在Startup.cs中,我app.UseIISPlatformHandler();作为方法中的第一个中间件添加Configure().

project.config:

{
  ...
  "webroot": "wwwroot",
  "dependencies": {
    "Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.Authorization": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.Abstractions": "6.0.0-rc1-final",
    "Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc1-final",
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final",
    "Newtonsoft.Json": "6.0.6",
    "WindowsAzure.Storage": "5.0.2",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    ...
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },
  "frameworks": {
    "dnx451": { }
  },
}
Run Code Online (Sandbox Code Playgroud)

编辑:

正如Jessevl所建议的那样,抛出以下异常: …

azure azure-web-sites asp.net-core-mvc dnx asp.net-core

4
推荐指数
1
解决办法
3346
查看次数

在使用ASP.NET Core进行集成测试期间使用多个环境

这是测试项目的launchSettings.json文件:

{
  "profiles": {
    "test": {
      "commandName": "test",
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

测试项目依赖于服务器项目,并使用服务器项目的Startup类直接初始化测试,如下所示:

Server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
Client = Server.CreateClient();
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,当我Startup.Configure在调试器中输入方法时,env.EnvironmentName是生产.我应该在哪里设置测试.xproj的环境名称?

在相关的说明中,我是否应该Startup在测试项目中拥有该类的本地测试版本?文档似乎暗示......否则appsettings会从何而来?他们没有将测试项目显示为在本地拥有appsettings的副本,但我非常确定Startup该类(无论是重用还是本地)都需要它.请指教.

xunit visual-studio-2015 dnx asp.net-core

4
推荐指数
1
解决办法
940
查看次数

使用ASPNet Core在Linux上托管时的Windows身份验证

我目前有一个自托管的Owin应用程序,它在Windows上运行,如下所示:

public class Program
{
    private static void Main(string[] args)
    {
        using (WebApp.Start<Startup>("http://localhost:9000"))
        {
            Console.WriteLine("Press Enter to quit.");
            Console.ReadKey();
        }
    }
}

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var listener = (HttpListener) app.Properties["System.Net.HttpListener"];
        listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;

        app.UseNancy();
    }
Run Code Online (Sandbox Code Playgroud)

当请求进入时,将使用其Windows域凭据验证用户.

对于ASPNetCore,我想知道是否有类似的设置可以使用但是应用程序在Linux上使用Kestrel Web服务器运行.

我听说Windows 2016和OpenIdConnect中间件可能有多种选择,或者我可以使用在Windows上运行的IdentityServer但在Linux上使用应用程序,但我认为需要中间件,我也不清楚是否会有"认证舞蹈"暗示它可能不像我现在那样无缝.

任何建议和/或代码示例将不胜感激.

谢谢

.net asp.net .net-core dnx asp.net-core

4
推荐指数
1
解决办法
1632
查看次数

Asp.Net:没有合适的AuthenticationMiddleware构造函数

我目前正在尝试编写AuthenticationMiddleware.看到这个答案.应用程序构建没有错误,但当我执行时,dnx web我收到以下错误:

无法找到"Namespace.BasicAuthenticationMiddleware"类型的合适构造函数.确保类型是具体的,并且构造函数接受所有参数.

在Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider,Type instanceType,Object []参数)

在Microsoft.AspNet.Builder.UseMiddlewareExtensions.<> c__DisplayClass2_0.b__0(RequestDelegate next)

在Microsoft.AspNet.Builder.Internal.ApplicationBuilder.Build()

在Microsoft.AspNet.Hosting.Internal.HostingEngine.BuildApplication()

失败:Microsoft.AspNet.Hosting.Internal.HostingEngine [7]

我确信我使用的构造函数签名在某种程度上是错误的,但我无法为此找到合适的文档,因为似乎有几十个已弃用的文档.

这是AuthenticationMiddleware:

public class BasicAuthenticationMiddleware : AuthenticationMiddleware<BasicAuthOptions>
{
    public BasicAuthenticationMiddleware(
        RequestDelegate next, 
        BasicAuthOptions options, 
        ILoggerFactory loggerFactory, 
        IUrlEncoder urlEncoder)
        : base(next, options, loggerFactory, urlEncoder) {}

    protected override AuthenticationHandler<BasicAuthOptions> CreateHandler()
    {
        return new BasicAuthenticationHandler();
    }
}
Run Code Online (Sandbox Code Playgroud)

BasicAuthOptions:

public class BasicAuthOptions : AuthenticationOptions {
    public const string Scheme = "BasicAuth";
    public BasicAuthOptions()
    {
        AuthenticationScheme = Scheme;
        AutomaticAuthenticate = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

BasicAuthenticationExtensions

public static class …
Run Code Online (Sandbox Code Playgroud)

c# asp.net basic-authentication dnx asp.net-core

4
推荐指数
1
解决办法
2401
查看次数

project.json中的源或本地构建的依赖项

我正在尝试使用示例应用程序(使用类似于启动器模板的项目)为ASP.NET MVC 6设置开发环境(即,我希望能够为MVC本身调试和编写PR) ,我不清楚如何使用依赖项部分创建引用project.json.这是我的:

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
        "Microsoft.AspNet.Mvc": "6.0.0-beta3",
        "Microsoft.AspNet.StaticFiles": "1.0.0.0-beta3",
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta3",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta3"
    },
    "frameworks": {
        "aspnet50": { },
        "aspnetcore50": { }
    },
    "bundleExclude": [
        "node_modules",
        "bower_components",
        "**.kproj",
        "**.user",
        "**.vspscc"
    ],
    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我认为这就是你在构建MVC应用程序时开箱即用的内容.但我想Microsoft.AspNet.Mvc用本地替换6.0.0-beta3 的引用- 无论是本地构建的nupkg还是项目文件,我都不确定.我在Aspnet wiki上查看了project.json解释并没有找到任何帮助,并解释了如何将kpm(折叠成dnx for beta4及更高版本,对吧?)解析版似乎集中在版本图上比起事物的来源.

我现在拥有的是构建了二进制文件/ nupkgs的Mvc仓库,我只是不知道要在依赖项部分放什么.

{
    ...
    "dependencies": {
        ...
        "Microsoft.Aspet.Mvc": ???
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

.net dnx asp.net-core

3
推荐指数
1
解决办法
1733
查看次数

log4net引用错误DNX 451和5.0

我在类库中使用DNX实现log4net时遇到问题.我的project.json中有以下内容 -

...
"dependencies": {
        "log4net": "2.0.3",
        "Microsoft.Framework.Logging": "1.0.0-beta4"
    },

    "frameworks": {
        "dnx451": { },
        "dnxcore50": {
            "dependencies": {
                "System.Collections": "4.0.10-beta-22816",
                "System.Linq": "4.0.0-beta-22816",
                "System.Threading": "4.0.10-beta-22816",
                "Microsoft.CSharp": "4.0.0-beta-22816"
            }
        }
    }
...
Run Code Online (Sandbox Code Playgroud)

当我尝试在类中使用log4net时,我收到以下错误 - 在此输入图像描述

但是,我确实在引用文件夹中看到了DNX 451和50的引用.有没有人想过如何解决这个问题?
此外,如果我从我的project.json文件中删除dnxcore50,它似乎解决了,我可以编译该项目.

dnx

3
推荐指数
1
解决办法
1019
查看次数

你如何重新运行dnx.任何文件更改的kestrel命令?

每当更改任何文件时,如何执行我的kestrel服务器以重新启动?而不只是停止?

我试过了

dnx --watch . kestrel
Run Code Online (Sandbox Code Playgroud)

但服务器只是停止,我必须手动重新运行该命令

我也尝试过使用npm watch命令,但这似乎只是绊倒了

watch 'dnx --watch . kestrel' .
Run Code Online (Sandbox Code Playgroud)

dnx asp.net-core

3
推荐指数
1
解决办法
1377
查看次数