2016-07-21 8 views
0

Ich habe eine neue Mobile App in Azure erstellt und das Starter-Projekt heruntergeladen und in Azure veröffentlicht.Nur die Standardroute arbeitet mit Azure Mobile App

Die Standardroute/Tabelle funktioniert einwandfrei, aber wenn ich versuche, auf neue Tabellen zuzugreifen, bekomme ich "Die gesuchte Ressource wurde entfernt, der Name wurde geändert oder ist vorübergehend nicht verfügbar."

Ich habe die neuen Tabellen zum dbContext hinzugefügt und in Azure veröffentlicht. Sie werden in der Liste der Tabellen angezeigt, wenn ich die Datenbank über SQL Management Studio anschaue, damit die Tabellen erstellt werden.

Und ich habe Controller für die neuen Tabellen hinzugefügt, die dem ursprünglichen Beispielcontroller entsprechen, aber nur diese anfängliche Route scheint zu laufen.

using System.Linq; 
using System.Threading.Tasks; 
using System.Web.Http; 
using System.Web.Http.Controllers; 
using System.Web.Http.OData; 
using Microsoft.Azure.Mobile.Server; 
using myApp.DataObjects; 
using myApp.Models; 

namespace myApp.Controllers 
{ 
    public class InvitationsController : TableController<Invitation> 
    { 
    protected override void Initialize(HttpControllerContext  controllerContext) 
    { 
     base.Initialize(controllerContext); 
     myAppContext context = new myAppContext(); 
     DomainManager = new EntityDomainManager<Invitation>(context, Request); 
    } 

    // GET tables/Invitation 
    public IQueryable<Invitation> GetAllInvitations() 
    { 
     return Query(); 
    } 

    // GET tables/Invitation/48D68C86-6EA6-4C25-AA33-223FC9A27959 
    public SingleResult<Invitation> GetInvitation(string id) 
    { 
     return Lookup(id); 
    } 

    // PATCH tables/Invitation/48D68C86-6EA6-4C25-AA33-223FC9A27959 
    public Task<Invitation> PatchInvitation(string id, Delta<Invitation> patch) 
    { 
     return UpdateAsync(id, patch); 
    } 

    // POST tables/Invitation 
    public async Task<IHttpActionResult> PostInvitation(Invitation item) 
    { 
     Invitation current = await InsertAsync(item); 
     return CreatedAtRoute("Tables", new { id = current.Id }, current); 
    } 

    // DELETE tables/Invitation/48D68C86-6EA6-4C25-AA33-223FC9A27959 
    public Task DeleteInvitation(string id) 
    { 
     return DeleteAsync(id); 
    } 
} 
} 

Antwort

0

Welche URL versuchen Sie, nach der Dokumentation sollte die Wurzel für Ihren Controller über https://<server>/tables/Invitations

https://azure.microsoft.com/en-gb/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/#define-table-controller

Tabelle Controller mithilfe der AddTables Erweiterungsmethode initialisiert werden. Dadurch werden Routen unter/tables/für alle Unterklassen von TableController hinzugefügt.

+0

Ich habe versucht, auf diese genaue URL zuzugreifen. Die URL der Mitglieder-Tabelle funktionierte perfekt (ich habe die ursprüngliche Todo-Klasse und den Controller konvertiert), aber keine anderen Tabellen funktionierten. Dieser Link, den Sie gesendet haben, sollte es tun. Ich rufe diese Methode nicht in der Startup-Klasse auf, nur UseDefaultConfiguration(). Werde es versuchen, wenn ich von der Arbeit nach Hause komme und als beantwortet markieren, wenn es funktioniert. Danke für die Hilfe! – GooseZA

+0

Ich habe versucht, die in diesem Artikel vorgeschlagene Konfigurationsänderung hinzuzufügen, aber es funktioniert immer noch nicht. Nur der Mitgliedscontroller funktioniert. Ich werde meine Frage aktualisieren, um beide Controller und die Konfig-Setup – GooseZA

+0

Heiligen Rauch enthalten. Ich hatte einen Tippfehler in meinem Controllernamen. Was für ein Affe! Das bekomme ich, wenn ich zu spät arbeite! Vielen Dank für Ihre Hilfe. Wird als richtig markieren, da ich diesen Artikel sehr nützlich fand =) – GooseZA