Я создал простую службу wcf, которая извлекает данные из crm 4.0 с помощью расширенных инструментов разработчика. Я успешно запросил данные с помощью linq. Классы создавались с использованием crmsvcutil. Однако, когда я преобразовал это в службу wcf, как показано ниже, он продолжает сбой.crm расширенные инструменты разработчика в сочетании с WCF не работает
namespace CRMDataRetrieval
{
[ServiceContract]
public interface ICRMData
{
[OperationContract]
string getValue();
}
public class CRMDataService : ICRMData
{
public string getValue()
{
DataContext context = new DataContext("entities"); //entities is name of classes that were generated by crmsvcutil
string name = null;
var query = from n in context.contacts
where n.acctNum == "01218515"
select n.nickname;
foreach (var result in query)
name = result;
return name;
}
В хост службы WCF, служба остановлена, но он также показывает, как Entities.CmsDataService остановки, а также. Когда я нажимаю на это, в дополнительной информации говорится, что услуга (Entities.CmsDataService) не может быть запущена. Эта служба не имеет конечной точки. Добавьте еще один конечный пункт для службы в файле конфигурации и повторите попытку.
Как все выглядит, мой app.config выглядит ниже. Итак, как и где я могу добавить конечные точки в файле конфигурации для автоматически генерируемых классов, чтобы они хорошо работали с WCF? или мне нужно будет внести какие-либо другие изменения? Пожалуйста, детализируйте свое объяснение. Как обычно, благодарим вас заранее.
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="entities" connectionString="Authentication Type=ad; Server=http://****; User ID=*\*******; Password=*******"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<bindings />
<client />
<services>
<service name="CRMDataRetrieval.CRMDataService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:7432/account"/>
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint name="wsHttpBinding_ICRMData" address="ws" binding="wsHttpBinding" contract="CRMDataRetrieval.ICRMData"/>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
ваши конфигурации Определенно endpoind являются правильными. Я немного смущен с «Entities.CmsDataService». Абсолютно неясно, откуда это название. Должно быть что-то вроде «CRMDataRetrieval.CRMDataService».
И мне не нравится имя класса DataContext. Он должен быть сгенерирован классом, но возможны конфликты именования с другими пространствами имен .Net, такими как System.Data.Linq – paramosh
Объекты - это папка, которая содержит все классы, созданные crmsvcutil, которые я включаю в свой проект с помощью оператора using. CmsDataServices является одним из тех автоматически генерируемых классов. Как вы предлагаете мне работать без DataConext? Я рад попробовать. Можете ли вы предоставить подробную информацию? Спасибо за ваш вклад. –
Быстрое примечание. Если есть класс сгенерированный автоматически DataContext, как мне его включить и использовать? Пожалуйста, предоставьте шаги –