问题标签 [asp.net-core-1.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
500 浏览

asp.net - 在调试模式下构建 asp.net 核心项目不会创建工件?

当我在发布模式下构建我的 asp.net 核心项目时,我可以在目录中找到工件:

但是当我在调试模式下构建我的 asp.net 核心项目时,我无法在工件文件夹内/下面的任何地方找到它。

这是为什么?

0 投票
1 回答
8056 浏览

asp.net - 如何在 ASP.NET Core (ASP.NET 5) 中创建自定义授权

我想在控件中自定义实现 [Authorize] 属性。

这就是我所做的。

  1. ConfigureServices 中的 StartupClass

    /li>
  2. 我的需求

    /li>
  3. 测试控制器

    /li>

我错过了什么?MyRequirement 授权着色器永远不会被调用。谢谢你。

0 投票
1 回答
318 浏览

azure - 在 VS2015 中发布到 azure 并显示消息:“预发布”脚本失败,状态码为 1

我采用了现有的 ASP.NET 4/MVC 5 网站并手动转换为 ASP.NET 5/MVC 6 项目。

当我在本地获得应用程序的全部功能时,我尝试将其发布到 Azure 上以前的 Web 应用程序。为此,我:

  1. 从 Azure 门户下载发布配置文件。
  2. 右键单击 Web 项目并选择“发布”。
  3. 导入发布配置文件并尝试发布。

令人惊讶的是,它第一次就奏效了。但是在随后的发布尝试中,我收到了错误:

错误:“预发布”脚本失败,状态码为 1。

查看发布的输出,我看到以下内容:

[13:25:07] 'min:ngAppJs' 在 307 毫秒后
出错 [13:25:07] 错误:EPERM,打开 'C:\SCM\Holos Portal 1.0 (ASP.Net 5, MVC6)\HolosPortal\src\ HolosPortal\wwwroot\ngApp\ngApp.min.js' C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:' prepublish' 脚本失败,状态码为 1。

2>由于构建错误,发布失败。检查错误列表以获取更多详细信息。

0 投票
1 回答
350 浏览

visual-studio-2015 - Global.json 中添加的项目未反映在解决方案资源管理器中

我按照以下步骤包含来自 GitHub 的 MVC 源代码

  1. 从 GitHub 克隆的 MVC 项目
  2. 使用 VS 2015 IDE 创建示例 MVC 核心应用程序
  3. 打开 Global.json 文件,添加条目"projects": [ "src", "test", "D://Mvcsrc//src" ]
  4. 克隆仓库中的项目应根据 Global.json 功能在解决方案资源管理器中打开所有项目

但是在解决方案资源管理器中什么都没有打开。我正在使用 RC1-update1

0 投票
1 回答
2674 浏览

c# - 直接替换 ASP.NET Core 中的 UserHostAddress?

我们发现它Request.UserHostAddress在 ASP.NET Core (1.0 RC1) 中不可用,以及Request.ServerVariables["REMOTE_ADDR"]返回基本相同的 .

现在我们找到HttpContext.Connection.RemoteIpAddressHttpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress成为替代品,但它真的是功能的 1:1 替代品吗?

我的意思是:Request.ServerVariables["REMOTE_ADDR"]只返回调用者的直接 IP 地址,而不是转发的客户端地址(因此你必须 get "X-FORWARDED-FOR")。这就是我们在场景中需要的:直接调用者地址,而不是转发地址。但是,如果 ASP.NET Core 对我们来说是正确的选择,我们找不到任何信息HttpContext.Connection.RemoteIpAddress(如果不是,还有什么选择?)。

0 投票
1 回答
175 浏览

asp.net-core - 在 ASP.NET Core 中用 NuGet 包替换包装的(非 NuGet)程序集时遇到问题

我在开发 ASP.NET Core 应用程序时遇到了问题。我需要逐步执行我的一个 NuGet 库,因此我分叉了 repo 并添加了对本地 DLL 和 PDB 文件的引用。借助 .NET Core 的新功能,这将导致 VS 创建一个包装器项目并将资源复制到lib项目本地的本地文件夹中。

这很好用,我能够单步调试代码并调试我的问题。但是,现在我试图恢复到 NuGet 包,但似乎某些 VS 缓存阻止了从 NuGet 检索包。这个问题似乎是针对整个解决方案的,因为我的解决方案中没有一个项目能够成功安装包。创建一个新的解决方案并从包管理器安装包确实可以按预期工作。

观察

删除wrap\project.jsonlib\*资产后,我遇到以下情况:

  1. 当我尝试在以前引用本地“包装”程序集的项目中安装包时,我在项目的引用节点中收到以下错误:

NU1002 项目 [...] 中的依赖项 BrockAllen.MembershipReboot 1.0.0 不支持框架 .NETFramework,Version=v4.5.1

  1. 当我尝试在解决方案中的另一个项目中安装 NuGet 包时(以前没有引用包装的程序集),我得到一个不同的错误:

NU1001 依赖 BrockAllen.MembershipReboot >= 8.4.0 无法解析。

  1. 当我从以前引用包装程序集的项目中启动Add Reference...对话框时,我得到以下 VS 错误对话框:

找不到路径“C:[SolutionDir]\wrap\BrockAllen.MembershipReboot”的一部分。

我发现这有点特别有趣,因为它显然在某处保留了该参考...如果有人对如何解决此问题有任何见解,我将不胜感激。我试图避免移植到新的解决方案,但这可能是我的下一步。

**更多详细信息*

我已经通过解决方案目录进行了文本搜索,但没有发现任何仍然引用该wrap目录的内容,除了global.json看起来像这样的目录:

project.json项目的文件如下:

%AppData%\Local\Temp\Temporary ASP.NET Files\vs我已经清除了一些本地 AppData 文件夹,即:%AppData%\Local\Microsoft\VisualStudio\14.0\ComponentModelCache但问题仍然存在。

0 投票
2 回答
25339 浏览

c# - 覆盖 ASP.NET Core 1.0 MVC 中的全局授权过滤器

我正在尝试在 ASP.NET Core 1.0 (MVC 6) Web 应用程序中设置授权。

更严格的方法 - 默认情况下,我想将所有控制器和操作方法限制为具有Admin角色的用户。因此,我添加了一个全局授权属性,例如:

然后我想允许具有特定角色的用户访问具体的控制器。例如:

这当然不起作用,因为“全局过滤器”不允许UserManager访问控制器,因为他们不是“管理员”。

在 MVC5 中,我能够通过创建自定义授权属性并将我的逻辑放在那里来实现这一点。然后将此自定义属性用作全局属性。例如:

我试图创建一个 custom AuthorizeFilter,但没有成功。API似乎有所不同。

所以我的问题是:是否可以设置默认策略,然后为特定的控制器和操作覆盖它。或类似的东西。我不想和这个一起去

在每个控制器/操作上,因为这是一个潜在的安全问题。如果我不小心忘记放Admin角色会发生什么。

0 投票
1 回答
10739 浏览

routes - 可选地通过 ASP.NET Core 1.0 应用程序中的 url/route 覆盖请求区域性

我正在尝试覆盖当前请求的文化。我部分使用自定义的ActionFilterAttribute.

在控制器上,我使用LanguageActionFilter.

到目前为止,这有效,但我有两个问题:

  1. 我不喜欢必须{culture}在每个控制器上声明,因为我将在每条路线上都需要它。
  2. 我的默认文化不适用于这种方法,即使我[Route("api/{culture=en-US}/[controller]")]出于明显的原因声明它也是如此。

设置默认路由结果也不起作用。

我还在自定义IRequestCultureProvider实现中进行了调查,并将其添加到UseRequestLocalization方法中,例如

但后来我无法访问那里的路线(我假设是因为路线稍后在管道中完成)。当然我也可以尝试解析请求的 url。而且我什至不知道我是否可以改变这个地方的路线,这样它就可以将上述路线与其中的文化相匹配。

通过查询参数传递区域性或更改路由内参数的顺序不是一种选择。

api/en-us/products我们应该将两个 urlapi/products路由到同一个控制器,前者不会改变文化。

确定文化的顺序应该是

  1. 如果在 url 中定义,就拿它
  2. 如果未在 url 中定义,请检查查询字符串并使用它
  3. 如果未在查询中定义,请检查 cookie
  4. 如果未在 cookie 中定义,请使用Accept-Language标头。

2-4 通过UseRequestLocalization并且有效。此外,我不喜欢当前的方法必须为每个控制器添加两个属性({culture}在 route 和 the 中[ServiceFilter(typeof(LanguageActionFilter))])。

编辑: 我还想将有效语言环境的数量限制为SupportedCultures传递RequestLocalizationOptionsUseRequestLocalization.

IOptions<RequestLocalizationOptions> localizationOptionsLanguageActionFilter上面不起作用,因为它返回一个RequestLocalizationOptionswhere SupportedCulturesis alwaysnull而不是传递给的新实例。

FWIW 这是一个 RESTful WebApi 项目。

0 投票
6 回答
68366 浏览

c# - 读取解决方案数据文件 ASP.Net Core

我有一个 ASP.NET Core (1.0-rc1-final) MVC 解决方案,我希望在项目中存储一个简单的文本文件,其中包含我读入控制器中的字符串数组的字符串列表。

我应该将此文件存储在我的项目中的什么位置以及如何在我的控制器中读取这些文件?

在 ASP.net 4.x 中,我会使用该app_data文件夹并完成类似的操作

Server.MapPath在 ASP.Net Core 1 中似乎无效,我也不确定该app_data文件夹是否有效。

0 投票
1 回答
1889 浏览

azure - 在 Azure Web 应用部署期间出现“错误:找不到路径的一部分”

我想将 ASP.NET Core Web 应用程序部署到 Azure。

在我的解决方案文件夹中,我有 2 个项目,都是引用Newtonsoft.Json库。

当我尝试通过本地 Git 存储库进行部署时,它在“正在运行部署脚本”处显示错误,从而导致以下活动日志。

日志的错误消息提示它尝试在 Newtonsoft.Json 中查找不存在的 bin 文件夹。知道如何解决这个问题以及有什么问题吗?