2016-08-02 2 views
4

je suivais this example pour créer mon 1er Owin web page:Mon premier .net programme Owin ne parviennent pas à exécuter et afficher la page web

  1. Démarrer VS2013, créez projet C# d'application Web: WebApplication1.
  2. Outils ->gestionnaire de package Nuget ->console de gestionnaire de paquets

    PM> Install-Package microsoft.owin.host.SystemWeb

Je peux voir maintenant la référence owin. 3. Ajouter ->Nouvel élément ->Owin démarrage classe et entrez extrait de code:

using System; 
    using System.Threading.Tasks; 
    using Microsoft.Owin; 
    using Owin; 

    [assembly: OwinStartup(typeof(WebApplication1.Startup1))] 

    namespace WebApplication1 
    { 
      public class Startup1 
      { 
        public void Configuration(IAppBuilder app) 
        { 
          // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 
          app.Run(context => 
          { 
            context.Response.ContentType = "text/plain"; 
            return context.Response.WriteAsync("Hello, world."); 
          }); 
        } 
      } 
    } 

OK, maintenant je Ctrl + F5 pour démarrer, et il soulève un navigateur IE. Malheureusement, la page il y a une erreur dans l'application Web:

Erreur HTTP 403.14 - Interdit

Le serveur Web est configuré pour ne pas le contenu de ce répertoire.

Causes les plus probables: • Un document par défaut n'est pas configuré pour l'URL demandée et la navigation dans le répertoire n'est pas activée sur le serveur. Ce que vous pouvez essayer: • Si vous ne voulez pas activer la navigation dans les répertoires, assurez-vous qu'un document par défaut est configuré et que le fichier existe. • Activer la navigation dans les répertoires. 1. Accédez au répertoire d'installation d'IIS Express. 2. Exécutez appcmd set config /section:system.webServer/directoryBrowse/enabled: true pour activer la navigation dans les répertoires au niveau du serveur. 3. Exécutez appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse/ enabled: true pour activer la navigation dans les répertoires au niveau du site.

• Vérifiez que l'attribut configuration/system.webServer/[email protected] est défini sur true dans le fichier de configuration du site ou de l'application.

erreur Informations détaillées:

Module DirectoryListingModule

Avis ExecuteRequestHandler

Handler StaticFile

Code d'erreur 0x00000000

URL demandée http://localhost:50598/

Chemin physique D: \ Documents \ Visual Studio 2013 \ Projects \ WebApplication1

Anonyme

connexion utilisateur Anonyme

Demande tracing D: \ Documents \ IISExpress \ TraceLogFiles \ WEBAPPLICATION1

Plus d'informations: Cette erreur se produit lorsqu'un document n'est pas spécifié dans l'URL, qu'aucun document par défaut n'est spécifié pour le site Web ou l'application et que la liste de répertoires n'est pas activée pour le site Web ou l'application. Ce paramètre peut être désactivé volontairement pour sécuriser le contenu du serveur. Voir plus d'informations »

Y a-t-il quelque chose que j'ai raté ou mal engagé dans toutes mes démarches? Comment le faire fonctionner?

+0

Avez-vous installé ASP.NET? 'Fonctionnalités Windows -> Internet Information Services -> Services World Wide Web -> Fonctionnalités de développement d'applications -> ASP.NET x.x'. –

Répondre

2

Votre exemple fonctionne bien pour moi. Je n'ai pas pu reproduire votre erreur. On dirait que quelque chose est mal configuré. Peut-être essayer de vérifier certaines des réponses existantes here et here. J'inclus mes étapes qui fonctionnent parfaitement bien pour moi afin que vous puissiez vérifier votre solution.

  1. Fichier> Nouveau> Projet> Web
  2. Créer application web complètement vide
  3. Installer le paquet de Microsoft.Owin.Host.SystemWeb: PM> install-package microsoft.owin.host.systemweb

  4. Faites un clic droit sur le projet dans l'explorateur de solution> Ajouter> Classe et nommez-le Startup.cs

  5. Insérez votre middleware owin

Ce à quoi ressemble ma classe comme:

using Owin; 

namespace WebApplication2 
{ 
    public class Startup 
    { 
     public static void Configuration(IAppBuilder app) 
     { 
      app.Use(async (ctx, next) => 
      { 
       await ctx.Response.WriteAsync("Test"); 
      }); 
     } 
    } 
} 

Juste pour vous assurer, je suis aussi compris mon packages.config:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" /> 
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" /> 
    <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" /> 
    <package id="Owin" version="1.0" targetFramework="net452" /> 
</packages> 

..et web .config:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2"/> 
    <httpRuntime targetFramework="4.5.2"/> 
    </system.web> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" 
     type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" 
     type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/> 
    </compilers> 
    </system.codedom> 
</configuration> 

Je n'ai absolument rien fait d'autre. Ce sont les seules étapes que j'ai prises. Vous pouvez comparer et peut-être trouver des différences.

+1

J'ai comparé avec vos fichiers, et j'ai vérifié que mon paquetages.config/web.config manque de contenu. J'ai créé une autre solution et utilisé install-package, j'ai résolu ce problème. Merci de répondre à cette question. –