在VS 2015社区中打开.NET Core projetcs时出现此错误:
尝试运行项目模型服务器进程(1.0.0-preview-003585)时出现以下错误.
无法启动该过程.找不到匹配命令"dotnet-projectmodel-server"的可执行文件.
它一直运作到昨天.我已经尝试重新安装.NET Core SDK并修复VS安装.
一些技巧?
我无法指定SDK的路径.我试过给路径,:C:\Development\Android\android-sdk-windows\platform-tools\" 但路径无效
在使用Entity Framework进行SQL通信时,我有一种奇怪的响应时间模式.
这是来自我的网站主持人:
这是来自我的本地服务器:
这是我担心的响应时间的增加.我已经将问题缩小到代码Nop.Data> EfRepository.cs> public void Insert(T entity)> _entities.Add(entity); 是的,我知道这对于NopCommerce非常具体,但关键在于我正在寻求她的帮助来解决这个问题.
是否有一些我可以捕获的事件显示正在执行的SQL?或者我还可以做些什么来了解上述命令中实体框架中实际发生的事情.
我正在使用 .Net Core 2.1 创建 API,并使用 JSON Web Token (JWT) 进行身份验证。
我有 2 个控制器:AuthenticationController和UserController. 我AuthenticationController用[AllowAnonymous]和装饰UserController过[Authorize]。
Swagger 工作正常:它允许我在没有请求授权的情况下访问 AuthenticationController (SignUp/SignIn) 中的端点,并且它确实请求 JWT 在UserController.
然而,在 Swagger UI 中,每个控制器的每个端点都显示一个挂锁图标,就好像它们都需要授权一样。一切正常并按预期工作,但让我烦恼的是不需要授权的端点仍然显示挂锁图标。
有没有办法从这些端点上删除挂锁图标?
我相信可以用 做一些事情,OperationFilter但我找不到方法。
我想使用环境变量在 Postman 中设置基本授权。因为我对不同的 API 调用有不同的授权用户名和密码。
我根据以下设置我的邮递员:
在授权选项卡中:我
在标题选项卡中选择了无身份验证:键=Authorization值=Basic{{MyAuthorization}}
在正文选项卡中:
{
"UserName": "{{UserName}}",
"ServiceUrl": "{{ServiceUrl}}"
}
//which set it from the envitonment variable
Run Code Online (Sandbox Code Playgroud)
在预请求选项卡中:
// Require the crypto-js module
var CryptoJS = require("crypto-js");
// Parse the `username` and `password` environment variables
let credsParsed = CryptoJS.enc.Utf8.parse(`${pm.environment.get('admin')}:${pm.environment.get('admin')}`);
// Base64 encoded the parsed value
let credsEncoded = CryptoJS.enc.Base64.stringify(credsParsed);
// Set the valuse as an environment variable and use in the request
pm.environment.set('MyAuthorization', credsEncoded);
console.log(credsEncoded);
Run Code Online (Sandbox Code Playgroud)
在测试选项卡中:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("LoginInfoID", jsonData.First.LoginInfoID); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用docker镜像运行我的ASP.NET Core 2.1应用程序.为此我有docker文件,其中包含以下内容:
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY . .
RUN dotnet restore
# copy everything else and build app
COPY Presentation/MyProject.Web/. ./Presentation/MyProject.Web/
WORKDIR /app/Presentation/MyProject.Web
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build /app/Presentation/MyProject.Web/out .
ENTRYPOINT ["dotnet", "MyProject.Web.dll"]
Run Code Online (Sandbox Code Playgroud)
但是当执行命令时docker build -t MyProject-web .它会给我一个错误:
The command '/bin/sh -c dotnet publish -c Release -o out' returned a non-zero code: 1
MyProject.Web …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用.bat文件执行MongoDB命令(用于创建数据库).
为此,我尝试过:
cd C:\Program Files\MongoDB\Server\3.4\bin
mongo
mongo --eval "use MyDatabase"
pause
Run Code Online (Sandbox Code Playgroud)
但它给出了错误missing ; before statement @(shell eval):1:4
我该如何解决这个问题?
我正在使用 ASP.NET Core 2.2 项目,我需要从控制器返回 JavaScript。但是,我怀疑没有直接的方法,因此,我遵循了这个OS answer 并将我的代码更改为如下:
public IActionResult MyAction()
{
var sb = new StringBuilder();
sb.Append("$(document).ready(function(){");
sb.Append("alert('hi')");
sb.Append("});");
return new JavaScriptResult(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)
public class JavaScriptResult : ContentResult
{
public JavaScriptResult(string script)
{
this.Content = script;
this.ContentType = "application/javascript";
}
}
Run Code Online (Sandbox Code Playgroud)
虽然它只是写纯文本。有办法吗?
我们使用Windows server 2008 R2 Enterprise和IIS7.5.7600.16385,并在服务器上部署了一个简单的Web(asp.net mvc,c#,.net framework 4.5.1).像下面这样的控制器,*.cshtml只输出一个日期时间:
public class DetailController : Controller
{
[OutputCache(Duration = 300, VaryByParam = "id")]
public ActionResult Index(int id)
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
当我第一次请求URL http:// localhost:80/Detail/Index?id = 3时,响应是正确的:
Cache-Control:public, max-age=300
Date:Mon, 24 Oct 2016 12:11:59 GMT
Expires:Mon, 24 Oct 2016 12:16:51 GMT
Last-Modified:Mon, 24 Oct 2016 12:11:51 GMT
Run Code Online (Sandbox Code Playgroud)
但是,当我再次请求url(ctrl + f5)时,max-age不正确(然后响应来自服务器缓存):
Cache-Control:public, max-age=63612908450
Date:Mon, 24 Oct 2016 12:16:34 GMT
Expires:Mon, 24 Oct 2016 12:20:50 GMT
Last-Modified:Mon, 24 Oct 2016 12:15:50 GMT
Run Code Online (Sandbox Code Playgroud)
我不知道为什么max-age这么大,以及它是如何生成的,它会在输出缓存过期时重新转换(ctrl + …
我正在尝试通过 .NET Core 2.1 中的刷新令牌和 JWT 实现基于令牌的身份验证。
这就是我实现 JWT 令牌的方式:
启动文件
services.AddAuthentication(option =>
{
option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
option.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = true;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidAudience = Configuration["Jwt:Site"],
ValidIssuer = Configuration["Jwt:Site"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SigningKey"]))
};
options.Events = new JwtBearerEvents
{
OnAuthenticationFailed = context =>
{
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
{
context.Response.Headers.Add("Token-Expired", "true");
}
return Task.CompletedTask;
}
};
});
Run Code Online (Sandbox Code Playgroud)
代币生成:
var jwt …Run Code Online (Sandbox Code Playgroud) asp.net-core ×3
c# ×2
jwt ×2
.net ×1
.net-core ×1
access-token ×1
android ×1
asp.net ×1
asp.net-mvc ×1
batch-file ×1
docker ×1
docker-build ×1
javascript ×1
mongodb ×1
nopcommerce ×1
outputcache ×1
performance ×1
postman ×1
sdk ×1
swagger ×1
windows ×1