![](/img/trans.png)
[英]how to set any class as my startup object in visual studio 2012?
[英]Error in owin startup class visual studio 2012
我是新來的信號r,我正在嘗試在c#visual studio 2012中創建一個基本的聊天應用程序,但我收到了以下錯誤。
The following errors occurred while attempting to load the app.
- No assembly found containing an OwinStartupAttribute.
- The discovered startup type 'SignalRTutorials.Startup, SignalRTutorials, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
conflicts with the type 'Microsoft.VisualStudio.Web.PageInspector.Runtime.Startup, Microsoft.VisualStudio.Web.PageInspector.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Remove or rename one of the types, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.
我創建了3個文件:
1)首先是Letschat.cs類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace SignalRTutorials
{
[HubName("myChatHub")]
public class LetsChat:Hub
{
public void send(string message)
{
Clients.All.addMessage(message);
}
}
}
2)第二個文件chat.aspx為
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Chat.aspx.cs" Inherits="SignalRTutorials.Chat" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery-1.6.4-vsdoc.js"></script>
<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.0.0.js"></script>
<script src="Scripts/jquery.signalR-2.0.0.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
$(function()
{
var IWannaChat=$.connection.myChatHub;
IWannaChat.client.addMessage=function(message){
$('#listMessages').append('<li>'+message+'</li>');
};
$("#SendMessage").click(function(){
IWannaChat.server.send($('#txtMessage').val());
});
$.connection.hub.start();
});
</script>
<div>
<input type="text" id="txtMessage" />
<input type="text" id="SendMessage" value="broadcast" />
<ul id="listMessages">
</ul>
</div>
</form>
</body>
</html>
3)class命名為Startup.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Web;
using System.Web.Routing;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Security;
using Owin;
namespace SignalRTutorials
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
我不知道我在哪里做錯了任何這方面的幫助將不勝感激。
面臨同樣的問題。 嘗試添加程序集級別屬性,如@Praburaj所示
您可以嘗試以下方法。
using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Security;
using Owin;
//add the attribute here
[assembly: OwinStartup(typeof(SignalRTutorials.Startup))]
namespace SignalRTutorials
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
我在Visual Studio 2013上遇到了同樣的問題。
刪除項目中的\\ bin和\\ obj文件夾然后重建它修復了問題。
您只需要將OWIN StartUp類[即StartUp1.cs]添加到項目中。
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(UserInterfaceLayer.Hubs.Startup))]
namespace UserInterfaceLayer.Hubs
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
如果您已構建項目,然后重命名它,則可能會出現此問題。 嘗試刪除bin文件夾中的所有文件,然后運行您的項目。 這對我有用。
只需添加此行即可
[assembly: OwinStartup(typeof(SignalRTutorials.Hubs.Startup))] as described here
http://yazilimsozluk.com/no-assembly-found-containing-an-owinstartupattribute
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.