Tag: asp.net core

通过Service Fabric项目进行调试时未使用的环境变量

在创建ASP.NET Core应用程序时,将为您设置一个名为ASPNETCORE_ENVIRONMENT=Development的环境变量,在调试时您将看到IHostingEnvironment设置为Development 。 问题是,当我在为Service Fabric设置的解决方案中使用相同的项目时,环境变量似乎没有被注入, IHostingEnvironment只返回“生产”。 我该如何解决这个问题? 注意:我在启动类中设置了一个断点来观察IHostingEnvironment变量。

使用JwtBearerAuthentication签名密钥

我正在尝试使用JwtBearerMiddleware在我的AspNetCore MVC应用程序(仅限Web API)中实现JWT承载身份validation,但我收到了带有标头的401响应: WWW-Authenticate: Bearer error=”invalid_token”, error_description=”The signature key was not found” Startup.cs中的相关代码如下所示: app.UseJwtBearerAuthentication(new JwtBearerOptions { Authority = “https://example.okta.com”, Audience = “myClientId” }); 使用权限URL,我希望中间件从https://example.okta.com/.well-known/openid-configuration查询我的身份提供程序元数据,以获取jwks_uri ,然后从https://example.okta.com/oauth2/v1/keys获取签名密钥https://example.okta.com/oauth2/v1/keys 。 我不认为这种情况正在发生。 我需要做些什么才能找到并使用签名密钥? 谢谢

使用相同的C#源构建一个完整的.net,PCL和dotnet核心程序集的单个源项目?

更新:这是指围绕project.json构建的一组过时的.net核心工具,这个问题及其答案在当前.net核心工具集(如Visual Studio 2017+)中的实用性非常有限。 使用Visual Studio 2015,更新3,我试图找出存在的当前限制,这将阻止我执行以下操作: 对于单个C#代码库,从相同的源代码编译完整的.net框架版本和PCL版本以及.net核心类库。 解决方案dir solutiondir\将包含一个src\ dir,其中包含一个projectdir\ ( Solutiondir\src\projectdir )。 Projectdir将包含一个HelloWorldPCL类库,它构建为classic .net PCL项目,以及其他框架目标。 从同一个Projectdir ,同样的HelloWorldPCL也将被编译为.net 4.6项目。 在同一个Projectdir ,同样的HelloWorldPCL也将被编译为.net core 。 上面的所有输出程序集将共享对一组C#代码的访问,这些代码可能有一些#if DOTNET和#if NET46以及#if PCL条件定义来处理各种框架/环境中不可用的东西。 到目前为止,我可以完成上述大部分工作,但是当我尝试让Projectdir包含.net core工件(如project.json或HelloWorldCore.xproj ,如果我尝试创建单独的.csproj和.xproj ,IDE会给我带来很多错误。项目在同一个文件夹中,因此看起来不是正确的方法。 当我在磁盘上引入.xproj和project.json时,有一个工作的.csproj项目,但是我们还没有将它们添加到解决方案本身,它们只是坐在Real Project Sources旁边的磁盘上,我得到了一个N​​uget包恢复错误,只能通过删除project.json文件来消除,所以显然不可能在项目目录中有.csproj并且还有一个project.json文件夹。 必须在project.json模式( .net core项目样式)和.csproj模式(经典C#项目样式)之间进行选择。 我已经构建了一个“破坏”的代码库,它表明不可能使用包含.csproj和project.json的文件夹,然后尝试构建csproj和project.json项目而不会干扰它们: https://bitbucket.org/wpostma/helloworldcoreandpcl 问题 :是否有任何方法可以从一组C#源文件构建项目,并具有完整的.net 4.6程序集,以及本机.net core类库,以及可能定位的PCL程序集任何特定的.net个人资料? 反对意见:你可以正确地问:“你不应该只使用一个PCL并完成它,并忘记定位完整.net或创建一个单独的.net core类库dll?”。 也许如果代码可以从单个源构建一次,没有任何条件定义,并且没有任何function上的差异,并且如果最低公分母PCL“ netstandard ”配置文件方法所施加的限制足够,则可以。 但是哪些情况甚至不可能呢? 我们是否必须有一些复杂的构建过程,我们要么复制项目文件,要么移动源代码,以实现单个.cs源文件目标多个.net profile nerdvana? 还是我忽略了其他解决方案? 更新 :当您使用project.json而不是使用.csproj构建它时,Visual […]

ASP .NET核心输入标记助手不使用Razor代码

我想将输入标记助手与剃刀代码组合起来设置属性,但我不能让两种技术一起工作。 我只是试图根据视图模型属性的值在输入字段上设置disabled属性。 当我把剃刀代码放在asp-for标签之后,剃刀智能感知器无法被识别,并且字段未按预期禁用… 渲染输出…… 当我将剃刀代码放在asp-for标签之前时,标签helper intellisense无法识别,并且该字段未按预期设置视图模型属性… 渲染输出…… 请注意,如果剃刀代码位于类属性中,则组合标记帮助器和剃刀会起作用。 遗憾的是,输入字段需要disabled属性,而不是bootstrap 3的禁用类。 有没有办法让这项工作?

如何在ASP.NET MVC 6中继续使用ModelState和RedirectToAction?

我有一个删除对象的方法。 删除不属于视图,并且是“EditReport”中的“删除”按钮。 成功删除“报告”上的重定向后。 [HttpPost] [Route(“{reportId:int}”)] [ValidateAntiForgeryToken] public IActionResult DeleteReport(int reportId) { var success = _reportService.DeleteReportControl(reportId); if (success == false) { ModelState.AddModelError(“Error”, “Messages”); return RedirectToAction(“EditReport”); } ModelState.AddModelError(“OK”, “Messages”); return RedirectToAction(“Report”); } 在ASP.NET MVC 5中,我使用以下属性在方法之间保存ModelState。 我从这里开始: https : //stackoverflow.com/a/12024227/3878213 public class SetTempDataModelStateAttribute : ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); filterContext.Controller.TempData[“ModelState”] = filterContext.Controller.ViewData.ModelState; } } […]

在ASP.NET Core Web API中接收文件和其他表单数据(基于边界的请求解析)

你如何形成你应该从请求中接收一个file和一个text值的动作方法的参数? 我试过这个 public string Post([FromBody]string name, [FromBody]IFormFile imageFile) 并尝试从Postman打它,但它给了我500 Internal Server Error 。 我也无法调试它,因为它永远不会触及我放置断点的action方法中的第一个语句。 任何想法我们如何解析基于边界的请求并提取文件和其他文本字段? 我是ASP.NET Core的新手。

在ASP.NET中使用dependency injection和工厂模式传递服务

我正在使用ASP.NET Core,我知道框架已经提供了这样的Logging机制,但是使用它来说明我的问题。 我正在使用一种Factory模式来构建Logger类,因为我不知道日志记录的类型(因为它存储在DB中)。 ILogger合同 Log(string msg) 然后,在根据从DB传递的参数创建Logger之后,LoggerFactory将返回ILogger: public class LoggerFactory { public static Contracts.ILogger BuildLogger(LogType type) { return GetLogger(type); } //other code is omitted, GetLogger will return an implementation of the related logger 现在,当我需要使用Logger时,我必须这样做: public class MyService { private ILogger _logger public MyService() { _logger = LoggerFactory.BuildLogger(“myType”); } 但是,我打算在没有任何实例化的情况下保留我的类,我需要在MyService中使用Constructor DI,我需要在Startup上注入所有依赖项: services.AddTransient (); 但这不起作用,我们需要通过一个具体的实现。 如何使用DI来完成这项工作,是否有更好的方法来实现它?

如何在net-core 2.0中手动解析JSON字符串

我有一个具有以下结构的json字符串 { “resource”: “user”, “method”: “create”, “fields”: { “name”: “John”, “surname: “Smith”, “email”: “john@gmail.com” } } 字段内的键是可变的,这意味着我事先不知道它们 因此,我不需要将json字符串反序列化为对象,而是需要遍历json,以便获取Dictionary中字段内的属性或类似的东西。 我听说过Json.NET库,它能够解析动态jsons,但我不确定它是否已经包含在net-core中了。 在net-core 2.0中实现这一目标的标准/最简单方法是什么? 代码示例将不胜感激。

ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final issue – 编译器想要引用7.0.0.0,但未找到

我有相同的问题。 我在project.json文件中添加了以下依赖项: “dependencies”: { “EntityFramework”: “7.0.0-beta4”, “EntityFramework.Core”: “7.0.0-rc1-final”, “EntityFramework.SqlServer”: “7.0.0-beta8”, “EntityFramework.Commands”: “7.0.0-rc1-final” }, “commands”: { “web”: “Microsoft.AspNet.Server.Kestrel”, “ef”: “EntityFramework.Commands” }, … 我用dnu install EntityFramework和dnu install EntityFramework.SqlServer来安装软件包。 “EntityFramework”: “7.0.0-beta4”,由安装程序本身自动编写在dependencies节点下。 问题/问题1:令我惊讶的是,当我为EntityFramework提供智能时,我提供的可用版本仅为6.1.3 ! 问题2:当我使用dnu build编译我的应用程序时(我在dependencies节点下手动添加EntityFramework程序集( .Core和.Commands )后运行了dnu restore命令)我收到了一堆编译错误: The type ‘DbContextOptionsBuilder’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘EntityFramework.Core, […]

在.Net Core 2.0和Angular中使用’dotnet publish’时找不到模块’aspnet-webpack’

我一直试图按照这个问题的答案,但无济于事。我正在尝试使用命令行命令’dotnet publish’发布我的.Net Core 2.0和Angular项目我成功发布,但是当我尝试运行我的项目时。在已发布的文件夹中,我的项目在开发环境中运行时吐出此错误: 未处理的exception:System.AggregateException:发生一个或多个错误。 (Webpack dev中间件因加载’aspnet-webpack’时出错而失败。错误是:错误:无法找到模块’aspnet-webpack’ 在Production中运行并允许DeveloperExceptionPage(如下面的statup.cs所示).netcore应用程序运行,但在实际的Web应用程序中崩溃,我认为是由于更大的错误,找不到aspnet-webpack: NodeInvocationException:Uncaught(在promise中):错误:找不到HomeComponent的组件工厂。 你有没有把它添加到@ NgModule.entryComponents? Startup.cs public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } // […]