2013-06-28 4 views
0

Я хочу создать службу WCF тест вроде этого: http://www.mywebsite.com/admin/Service1.svcWCF и пространств имен

  1. я создаю новый проект -> WCF -> службы WCF приложений
  2. Я завернуть автоматически созданный Service1.svc и IService1 .vb в «пространство имен администратора», как это:

Namespace Admin

Public Class Service1 
    Implements IService1 

    Public Sub New() 
    End Sub 

    Public Function GetData(ByVal value As Integer) As String Implements ... 
     Return String.Format("You entered: {0}", value) 
    End Function 

    ' deleted rest of class 
End Class 

End Namespace

Но когда я пытаюсь добавить ссылку на службу к Service1.svc, я получаю эту ошибку:

There was an error downloading 
'http://localhost:51826/Service1.svc/_vti_bin/ListData.svc/$metadata'. 

Если я удалю свой «Администратор пространства имен» и поместил Service1.svc в папку «Admin», то он отлично работает, но мне нужно структурировать свой код, так как это будет большой проект.

Как я могу использовать «пространство имен» без его отказа?

+0

пытаются восстановить приложение ФОС ... если не работает, то попробуйте добавить HTTP: // локальный: 51826/администратор/Service1.svc –

ответ

0

Пространства имён и папки не связаны друг с другом. Вы можете иметь любое пространство имен и поместить svc в любую папку, которую вы желаете.

VB предоставляет неявное корневое пространство имен, которое по умолчанию является именем вашего проекта. Вы можете увидеть его Project> Properties> Application tab.

Тем не менее, поскольку вы хотите добавить пространство имен «Admin», теперь ваш класс находится под пространством имен второго уровня - <yourProjectName>.Admin.

Это должно отразиться в вашем файле svc - вам нужно добавить «Admin» в атрибут service.

Щелкните правой кнопкой мыши на файле svc в проекте и выберите> Показать разметку. Внесите изменения в атрибут Service тега ServiceHost.

<%@ ServiceHost Language="VB" Debug="true" Service="<YourProjectName>.Admin.Service1" CodeBehind="Service1.svc.vb" %> 
+0

Я потратил часы, пытаясь понять это - так что спасибо! Я не могу выразить достаточно, насколько я благодарен за вас (и другие) за время, помогающее начинающим, как я. :) – MojoDK

1

При создании «Сервисного приложения WCF 4.0» для настройки веб-службы используется стратегия «Конвент-конфигурация»; Одна из этих конвенций заключается в том, что реализация службы помещается внутри «По умолчанию пространство имен сборки». Чтобы исправить это; выполните следующие шаги:

  1. Щелкните правой кнопкой мыши на файле .svc и выберите «Просмотр разметки». Это файл XML, который связывает файл .svc с реализацией вашей службы.
  2. Измените значение атрибута «Сервис», чтобы оно соответствовало правильному расположению реализации службы, например WcfService1.Admin.Service1
  3. Сборка сборки.
  4. Проверьте обслуживание.
+0

я свистеть я мог бы отметить свой ответ, как принято слишком, но только Stackoverflow позволяет один. Спасибо, что помогли мне! – MojoDK

+0

+1 - проголосовали за вас. – YK1