2017-03-28 9 views
10

私はStartup.csクラスが含まれていませんASP.NETウェブAPIソリューションを持って存在していません。これは、ソリューションがMCVソリューションとして作成されなかったためです。ASP.NETウェブAPI - Startup.csが

あなたは今、私はOAuthのと私がしたすべてのドキュメントのサポートをしたい、しかし

public class Global : HttpApplication 
{ 
    void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     AreaRegistration.RegisterAllAreas(); 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
    } 
} 

の下に見ることができるように、スタートアップのためのすべてのコードがGlobal.asax.csファイルで定義されています次のクラスを持つStartup.csに基づいています。

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     ConfigureAuth(app); 
    } 
} 

私のソリューションにこの新しいクラスを追加するだけで、ソリューションは引き続き動作しますか?

このGlobal.asax.csクラスとの競合を持っているのだろうか?

EDIT:私はStartup.csクラスを追加した後、私はそれに加え、ブレークポイントをヒットすることはできません...

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartup(typeof(MyGame.Startup))] 

namespace MyGame 
{ 
    public partial class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      ConfigureAuth(app); 
     } 
    } 
} 

任意のアイデアが起こっていただきましたか!?

+2

[アセンブリ:OwinStartup( typeof(AuthorizationServer.Startup))] 'これは起動クラスの上にあります – Curiousdev

+1

私はそれを追加しましたが、アプリケーションを実行するときにブレークポイントにヒットしません。 – user3587624

+0

@ user3587624私は同じ問題を抱えています。あなたはそれを解決しましたか? –

答えて

4

Startup.csはOWIN認可パッケージの一部です。パッケージがNuGet経由で追加されない場合は、それが動作する保証はありません。しかし、この回答で判断すると、あなたの環境によっては、とにかく動作する可能性があります。

https://stackoverflow.com/a/24678109/6442626

短い答え:あなたはNuGetからMicrosoft.Owin.Security.OAuthをインストールした場合、それは良いことがあります。それ以外の場合は、インストールする必要があります。

更新: 起動時にMVCが設定メソッドを呼び出すようにするには、NuGetのMicrosoft.Owin.Host.SystemWebパッケージもインストールする必要があります。 web.configで変更する必要のある特別なものは何もなく、IISは自動的にOwinホストを検出してロードします。

+0

は実は、私はStartup.csとStartup.Auth.csを追加し、それがすべてでConfigurAuth(アプリ)の行に破壊されていません。私は、アセンブリを追加しました([assembly:OwinStartup(typeof(MyGames.Startup))])名前空間の上に...任意のアイデア? – user3587624

+0

NuGetからパッケージをインストールしましたか? –

+0

しました。私は、このインストールされている:<パッケージidは= "Microsoft.Owin.Security.OAuth" バージョン= "3.0.1" targetFramework = "net46" />だけでなく、などJWT、Active Directoryの、などの多くの他の... – user3587624

3

独自の起動クラスを追加することができますが、Owinがそれを認識していることを確認する必要があります。 There are several ways to do thisですが、Startupクラスを使用する場合は、OwinStartup属性を使用する必要があります。

例:

[assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))] 
+0

への参照を追加した後に問題がなくなったことをここに追加するだけですが、これを試しました(編集済みの記事を参照)。 – user3587624

+1

私は再コンパイルされていないDLLに問題がありました。 Temporary ASP.Netファイル(通常は "Appdata/Local/Temp/Temporary ASP.NET Files")から内容を削除してから、プロジェクトのbinフォルダとobjフォルダを削除して、すべてを再コンパイルするようにしてください。 – SharpLizard

+0

この場合、Microsoft.Owin.Host.SystemWebを追加した後に問題がなくなりました – user3587624

4

あなたはOwinパッケージをインストールしている場合は、あなたが起動クラスを簡単な作成することができます:あなたは `追加したことを確認してください

enter image description here

+0

これはVS 2015の正解です。必要なコードがすべて生成されます。 –

関連する問題