WCF RIA Service-Bereitstellungsproblem

8

Ich habe eine sehr einfache Beispiel-Silverlight-Anwendung. Ich habe einen Domänenservice mit einem Entitätsmodell hinzugefügt, das über eine Entität verfügt. Die Client-App lädt beim Start alle Zeilen der Entity. Wenn ich das auf meiner Entwicklungsbox ausführe, funktioniert es wie erwartet. Wenn ich es jedoch auf unseren Testserver verschiebe, bekomme ich eine Ausnahme, die besagt, dass die Methode, die ich anrufe, nicht gefunden werden kann (Ladeoperation für Abfrage 'GetCTCStation' fehlgeschlagen. Der entfernte Server hat einen Fehler zurückgegeben. NotFound.). Als ich die Client / Server-Kommunikation näher mit Fiddler inspizierte, fand ich heraus, dass die Anfrage zu Ссылка URL] / ClientBin / SilverlightApplication7-Client geht -Web-CTCService.svc / binary . Ich habe den Domain-Service dem Root des Webprojekts hinzugefügt, daher verstehe ich nicht, warum der Client im ClientBin-Verzeichnis danach sucht. Es ist offensichtlich nicht da. Was mache ich hier falsch? Ich hatte nie Probleme mit der Juli-Vorschauversion von RIA.

Es ist relativ, aber das wird automatisch in der Generated_Code-Datei behandelt. Und es gibt nichts in der Webconfig zu konfigurieren. Ich habe die Standardeinstellungen beim Erstellen eines Domain-Service verwendet. Ich habe versucht, das uri beim Instanziieren des Dienstes explizit zu setzen und die gleiche Ausnahme aufgetreten.

    
Dragan 08.12.2009, 20:35
quelle

10 Antworten

9

Nach langem Ringen und dem Ausprobieren vieler verschiedener Möglichkeiten habe ich endlich die Lösung gefunden. Dieser Beitrag war der Schlüssel :

Grundsätzlich wurden beim Veröffentlichen des Projekts einige DLLs nicht in den Ordner bin aufgenommen. Stellen Sie unter Referenzen sicher, dass die folgenden DLLs ordnungsgemäß eingerichtet sind (Stellen Sie sicher, dass System.ComponentModel.DataAnnotations auf C: \ Programme \ Microsoft SDKs \ RIA Services \ v1.0 \ Libraries \ Server \ System.ComponentModel verweist. DataAnnotations.dll ):

System.ComponentModel.DataAnnotations und jede DLL, die mit System.Web beginnt, muss "Copy Local" auf true gesetzt haben.

Erstellen Sie das Projekt und veröffentlichen Sie es erneut. Das hat das Problem für mich behoben.

Ich möchte allen danken, die zur Lösung dieses Problems beigetragen haben (in diesem Thread und anderen).

    
Dragan 09.12.2009, 15:29
quelle
1

Wenn Sie den Fehler bei dieser Serviceanfrage prüfen (was normal ist, wie Sie ihn sehen), was sagt der Inhalt in Fiddler? NotFound ist generit im Plugin, aber Fiddler zeigt Ihnen wahrscheinlich einen HTTP 500 oder etwas mit mehr Details im Antworttext.

    
Tim Heuer 09.12.2009 04:19
quelle
1

1) Auf welchen IIS plündern Sie? Wenn & lt; 7 Sie benötigen Hotfix

2) Fügen Sie alle Ihre RIA-Assemblys hinzu (Set Copy Local = & gt; True) Einschließlich:

System.Web.Ria

System.Web.DomainServices. (es gibt vier davon, je nachdem, was Sie verwenden)

3) Dies kann darauf zurückzuführen sein, dass Ihr Knoten in Ihrer ASPNET-Anwendung auf Windows gesetzt ist, Ihre Site jedoch in IIS auf Anonym eingestellt ist. Bei den meisten wird der Fehler einfach durch Ändern des Knotens in mode="Forms" behoben und Sie können fortfahren. Wenn Ihre IIS-Konfiguration für die Verwendung von Integrated Auth und Anonymous konfiguriert ist, sollten Sie in der Einstellung "Verzeichnissicherheit" für die Site in der IIS-Verwaltungskonsole eines deaktivieren.

    
Alexander 23.12.2009 15:47
quelle
1

Microsoft empfiehlt auf MSDN , dass Ria-Dienste installiert werden auf dem Server.

  

Es wird empfohlen, RIA Services auf dem Webserver zu installieren   das hostet Ihre Anwendung.

Hier ist ein Trick , der wahrscheinlich die meisten Menschen vor dieser Lösung zurückschrecken sehen wird. Die Installation listet standardmäßig eine Reihe von Voraussetzungen auf, die Sie normalerweise nicht auf dem Server installieren möchten.

  

Voraussetzungen Überprüfen Sie

     

Die folgenden erforderlichen Komponenten fehlen:

     
  • Microsoft Visual Studio 2010 oder neuer oder Visual Web Developer 2010
  •   
  • Express Microsoft Silverlight 4 Developer Runtime oder neuer Microsoft
  •   
  • Silverlight 4 SDK oder Microsoft Silverlight 5 SDK
  •   

Das Ausführen der Installation mit dem Befehlszeilenargument SERVER=TRUE wird umgangen diese Überprüfung.

  

msiexec / i RiaServices.msi SERVER = WAHR

Ich würde auch empfehlen, dass Sie diese Lösung verwenden, da keine spezielle Konfiguration für eine bestimmte Gruppe von DLLs erforderlich ist, die sich in zukünftigen Versionen ändern können. Außerdem wird der Veröffentlichungsprozess etwas schneller sein, da diese Dateien nicht enthalten sind.

Beachten Sie auch, dass Sie das Web-Plattform-Installationsprogramm verwenden können, um Ria-Dienste auf einem Server zu installieren 'Installation von WCF RIA Services Server für .Net Framework 4.0' , die die gleiche Wirkung wie der Schalter SERVER=TRUE hat. Leider ist dies nur Version 1 und Service Pack 2 fehlt.

    
Scott Munro 05.11.2012 11:33
quelle
1

In meinem Fall bestand die Lösung darin, die Eigenschaft "Copy Local" der folgenden Assemblys aus dem Referenzordner der WebSite auf "True" zu setzen:

%Vor%

Wenn alles nach dem nächsten Neuaufbau korrekt ist, werden diese Assemblies in den bin-Ordner Ihres Projekts kopiert.

Was ist gut, jede nützliche Konfiguration von IIS 7 habe ich nicht durchgeführt.

    
Sasha 14.10.2010 15:02
quelle
1

Auch bei diesem Problem (RIA gibt "Not Found" zurück), aber in meinem Fall war es, dass meine Anfrage mehr Zeilen zurückgab, als über maxitemsinobjectgraph erlaubt war. Meine vorübergehende Lösung bestand darin, .Take (5000) hinzuzufügen, um die Ergebnismenge zu reduzieren, aber eine permanente Auflösung erfordert, dass der maxitemsinobjectgraph wie unten beschrieben erweitert wird. Hoffe das hilft jemand anderem aus ...

%Vor%

Beachten Sie, dass der Standardwert Int32.MaxValue oder 2.147.483.647

ist

MSDN - maxItemsInObjectGraph

MSDN - Int32.MaxValue

    
Paul 02.08.2011 14:17
quelle
0

Haben Sie den Adressbereich Ihrer Bindungskonfiguration überprüft? Es sieht so aus, als ob es eine relative Adresse benutzt.

    
Sako73 08.12.2009 20:43
quelle
0

Für mich war die Authentifizierung in IIS nicht auf "Anonym" eingestellt. Ich benutzte Fiddler, um die generierte RIA SCV URL zu erhalten und öffnete dann die URL in einem Browser. Die Nachricht war ziemlich explizit.

Ich musste nur anonymen Zugriff erlauben, den Anwendungspool neu starten und alles hat wie erwartet funktioniert.

    
Smoothcity 02.03.2012 16:23
quelle
0

WCF RIA Services VS 2008-Bereitstellungsfehler

Es gibt viele nette Beiträge im Netz und das beste scheint hier (Danke Tim)

Obwohl alle von mir gefundenen Postings in irgendeiner Weise nützlich waren, war die endgültige Lösung in meinem Fall die ungeeignete DB-Verbindungszeichenfolge. Obwohl der VS-generierte DB-String innerhalb von VS funktionierte, konnte ich ihn nicht auf meinem QA-Server bereitstellen, bis ich ihn so zurechtgeschnitten habe:

%Vor%     
Jesse 16.04.2010 21:42
quelle
0

WCF RIA Services VS 2008-Bereitstellungsfehler   Hier ist die Lösung, nach der Sie suchen, zum Download Beispiel und überprüfen Sie Ihre Selbst leben WCF RIA (Vs2008) Service.

    
Rajneesh Noonia 28.05.2010 21:52
quelle