2014-04-09 11 views
24

Ich habe eine Servicereferenz zu meinem mvc4-Webprojekt hinzugefügt und sie mit dem Standardnamensbereich "ServiceReference1" belassen, aber wenn ich diesen Namespace verwenden möchte, kann Visual Studio sie nicht finden. Wie es nicht existiert, ist der Webservice in Ordnung und funktioniert gut. Was genau mache ich falsch?kann nicht auf die hinzugefügte Servicereferenz zugreifen

Antwort

63

fand ich die Lösung HERE die als Hoakie unten erwähnt für mich gearbeitet und meine reference.cs richtig jetzt generiert:

1) Rechtsklick auf Dienstverweis

2) Wählen Sie Konfigurieren Dienstverweises

3) Deaktivieren Sie die Option "Reuse-Typen in referenzierten Assemblys"

und Voila!

+3

Es funktionierte für mich auch. Aber tut jemand nein, was ist seine Bedeutung und warum hat es funktioniert? –

+0

Huh ... habe einen halben Arbeitstag dabei verloren, die gesamte Dateihierarchie nach dem Problem durchsucht und dies gelöst! Vielen Dank mein Freund! – Leonidas

+0

Super ... Da es nicht wie erwartet funktioniert, haben die Entwickler es standardmäßig markiert? !!! Sie nur so gemacht, um viele Entwickler verschwenden ihren halben Tag :( – Chakri

7

Dies wird erreicht, indem die Namen gleichennamespace Namen wie Klasse verursacht.

Ihren Namensraum ändern auf einen Namen, der nicht den gleichen Namen wie die Klasse ist, und dies wird

+0

Der Klassenname ist "BaseJob" mit Namespace "SmsPanel, der Service-Referenz-Namespace ist" ServiceReference1 "... –

+0

Ich kann keine Service-Modell-Bindung in meiner Datei web.config finden, obwohl ich nicht sicher bin Struktur in mvc 4, aber sollte der Endpunkt nicht zu meiner Webconfig-Datei hinzugefügt werden? –

+0

Wenn Sie die Referenz über Visual Studio hinzugefügt haben wird es notwendige Dinge in web.config von ihm selbst hinzufügen – RezaRahmati

1

Blick auf die Proxy-Klasse kompilieren, die von Visual Studio für Ihren Dienst erzeugt wird, und sehen, was ist der Namespace und der Klassenname

+1

Wo genau kann ich auf diese Proxy-Klasse zugreifen? –

+0

Es gibt einen ServiceReference-Ordner in Ihrer Lösung und generierte Dateien sind dort – RezaRahmati

+0

Wenn Sie über den Service-Referenz-Ordner in meiner Lösung sprechen, gibt es dort nichts meine Service-Referenzen –

2

Ein weiteres häufig übersehenes Problem ist, dass der Dienstverweis den Namespace Ihres Projekts an den Namespace anfügt, den Sie in der Dienstkonfiguration angeben.

Mit anderen Worten, wenn der Namespace Ihres Diensts ServiceReference1 ist, ist der tatsächliche Namespace, der erstellt wird [RootNameSpace] .ServiceReference1. RootNameSpace ist normalerweise der Name Ihres Projekts, daher können Sie es in den meisten Fällen einfach reparieren, indem Sie den Dienstverweis an [Projektname.] Anhängen. Wenn der Name Ihres Projekts MyProject lautet, ist der Namespace MyProject.ServiceReference1

Es ist auch relativ einfach, die Datei csproj (angenommen C# -Projekt) im Editor zu öffnen und nach "RootNamespace" zu suchen, um den Stammnamespace für zu finden das Projekt.

Verwandte Themen