我很难在SignalR项目中使用vNext (epmty模板)。
我在project.json文件中添加了project.json依赖项,现在看起来如下所示:
{
"webroot": ".",
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
"Microsoft.AspNet.Server.WebListener": "1.0.0-*",
"Microsoft.AspNet.StaticFiles": "1.0.0-*",
"Microsoft.AspNet.SignalR.Server": "3.0.0-*",
"Serilog": "1.4.113.0"
},
"commands": {
"web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5002"
},
"frameworks": {
"dnx451": {
"dependencies": {
"Microsoft.Framework.Logging.Serilog": "1.0.0-*"
}
},
"dnxcore50": { }
}
}然后我想把SignalR映射到我的Startup.cs中(就像我在git上发现的那样)
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR(options =>
{
options.Hubs.EnableDetailedErrors = true;
});
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
#if DNX451
string OutputTemplate = "{SourceContext} {Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}";
var serilog = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.RollingFile(@".\SignalR-Log-{Date}.txt", outputTemplate: OutputTemplate);
loggerFactory.AddSerilog(serilog);
#endif
app.UseFileServer();
app.UseSignalR<RawConnection>("/raw-connection");
app.UseSignalR();
},但当我在上面加上:
using Microsoft.AspNet.SignalR;我得到了错误:
命名空间>'Microsoft.AspNet‘中不存在类型或名称空间名称'SignalR’(您是否缺少程序集引用?)>2015\Projects\VersaWeb\src\VersaWeb\Startup.cs >5.0c:\ VersaWeb.ASP.NET \Jakub\documents\visual VersaWeb.ASP.NET
我现在被困住了。
编辑:
问题必须与project.json有关,因为当我从音乐商店抄袭的时候,问题就消失了。
下面是我当前的project.json (可能不需要某些依赖项,所以我将进一步测试它)
{
"authors": [
"author"
],
"description": "your description here",
"version": "1.0.0",
"compilationOptions": { "warningsAsErrors": true, "define": [ "DEMO", "TESTING" ] },
"code": [
"**/*.cs"
],
"bundleExclude": "*.cmd",
"webroot": "wwwroot",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta3",
"EntityFramework.InMemory": "7.0.0-beta3", // For Mono.
"Kestrel": "1.0.0-beta3",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta3",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta3",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta3",
"Microsoft.AspNet.Mvc": "6.0.0-beta3",
"Microsoft.AspNet.Security.OpenIdConnect": "1.0.0-beta3",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta3",
"Microsoft.AspNet.SignalR.Server": "3.0.0-beta3",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta3",
"Microsoft.Framework.Cache.Memory": "1.0.0-beta3",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta3",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta3",
"Microsoft.Framework.Logging.Console": "1.0.0-beta3"
},
"commands": {
"gen": "Microsoft.Framework.CodeGeneration",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004",
"run": "run server.urls=http://localhost:5003",
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5002"
},
"frameworks": {
"aspnet50": { },
"aspnetcore50": { }
}
}发布于 2015-04-22 11:16:07
签出MusicStore样品,它使用SignalR。我也在我的vnext项目中使用SignalR (虽然使用了kre,而不是新的dnx ),所以它肯定是可行的。
发布于 2015-05-12 17:27:40
查看您的初始project.json,可能是因为您试图瞄准dnx451,但却遇到了错误的.NET开发运行时。
我在使用这个vNext时发现的主要问题是,您的所有引用都需要在相同的级别上--beta5 3/beta5 4/beta5 5,而您的.NET运行时必须匹配(frameworks in project.json)。我相信beta3使用了aspnet50,自从beta4重命名之后,现在是dnx451了。
在命令行上运行dnvm list并查看安装的内容和设置为“默认”别名的内容是值得的,因为这是Visual在运行应用程序时将使用的内容(除非在解决方案global.json文件中覆盖)。
https://stackoverflow.com/questions/29794622
复制相似问题