2017-12-27 7 views
4

Ich verwende BotAuth nuget-Paket, um Benutzer auf meinem Bot einzuloggen. Kürzlich habe ich Azure Table-Speicher implementiert, um Bot-Zustandsdaten zu speichern und zu verwalten, indem ich die in https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-state-azure-table-storage erwähnten Schritte befolge.Fehler bei BotAuth mit Azure-Tabellenspeicher

Meine Global.asax.cs Datei sieht wie folgt aus:

public class WebApiApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 

     var store = new TableBotDataStore(CloudStorageAccount.DevelopmentStorageAccount); 
     Conversation.UpdateContainer(builder => 
     { 

      builder.Register(c => store) 
       .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore) 
       .AsSelf() 
       .SingleInstance(); 

      builder.Register(c => new CachingBotDataStore(store, 
         CachingBotDataStoreConsistencyPolicy 
         .ETagBasedConsistency)) 
         .As<IBotDataStore<BotData>>() 
         .AsSelf() 
         .InstancePerLifetimeScope(); 
     }); 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
    } 
} 

Und MessagesController ist dieselbe wie die in der Bot-Vorlage:

[BotAuthentication] 
public class MessagesController : ApiController 
{ 
    /// <summary> 
    /// POST: api/Messages 
    /// Receive a message from a user and reply to it 
    /// </summary> 
    public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
    { 
     if (activity.Type == ActivityTypes.Message) 
     { 
      await Conversation.SendAsync(activity,() => new Dialogs.RootDialog()); 
     } 
     else 
     { 
      HandleSystemMessage(activity); 
     } 
     var response = Request.CreateResponse(HttpStatusCode.OK); 
     return response; 
    } 

    private Activity HandleSystemMessage(Activity message) 
    { ...... } 
} 

Nun, es auf die Erprobung, ich die Anmelde-Karte wie erwartet und nach dem Klicken und Beenden des Autorisierungsprozesses, bekomme ich den folgenden Fehler im Browser:

Was genau fehlt mir? Ist es eine Autofac-Modul-Registrierung? Hat jemand eine funktionierende Probe dafür?

+0

Können Sie bitte auch Ihre Nachrichten Controller posten? – JasonSowers

+0

Hinzugefügt es @JasonSowers. Der Nachrichten-Controller ist derselbe wie in der Bot-Initial-Vorlage. Ich habe daran nichts geändert. –

+0

Ich finde [dieses Problem: "*** Die Aktivierung des benutzerdefinierten Zustandsdienstes verursacht einen Authentifizierungsfehler ***"] (https://github.com/richdizz/BotAuth/issues/8) auf github, Sie können sich auf den Kommentar von weshackett beziehen und Versuchen Sie, den CallBack-Controller zu ändern, um den von Ihnen konfigurierten Datenspeicher zu verwenden. –

Antwort