Создание учетной записи MS crm: System.Net.WebException: запрос не выполнен с состоянием HTTP 401: не авторизован - PullRequest
0 голосов
/ 19 ноября 2010

Я использую, я вошел на удаленный сервер для доступа к Visual Studio, а также MS CRM.Я взял пример кода из SDK и пытаюсь запустить код:

CrmAuthenticationToken token = new CrmAuthenticationToken();

token.AuthenticationType = 0;

token.OrganizationName = "AdventureWorksCycle";

CrmService service = new CrmService();
service.Url= "http://10.16.16.205:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;

service.Credentials = new System.Net.NetworkCredential"username", "password", "domain");

// Create the account object.
account account = new account();

// Set the properties of the account object.
account.name = "Fourth Coffee123";
account.address1_line1 = "29 Market St.";
account.address1_city = "Sam";
account.address1_stateorprovince = "MT1";
account.address1_postalcode = "9999";
account.donotbulkemail = new CrmBoolean();
account.donotbulkemail.Value = true;

// Create the target object for the request.
TargetCreateAccount target = new TargetCreateAccount();

// Set the properties of the target object.
target.Account = account;

// Create the request object.
CreateRequest create = new CreateRequest();

// Set the properties of the request object.
create.Target = target;

// Execute the request.
CreateResponse created = (CreateResponse)service.Execute(create);

Я использую веб-службу Crm для этого, но исключение его выброса:

Сведения об исключении:

System.Net.WebException: запрос не выполнен с состоянием HTTP 401: не авторизован.

Ошибка источника:

Line 114: [return: System.Xml.Serialization.XmlElementAttribute("Response")]

Line 115: public Response Execute(Request Request) {

Line 116: ***object[] results = this.Invoke("Execute", new object[]* {**

Line 117: Request});

Line 118: return ((Response)(results[0]));

1 Ответ

0 голосов
/ 23 февраля 2011

Одна вещь, которую вам не хватает, это настоящее имя пользователя и пароль. Я предполагаю, что вы пропустили это для целей этого вопроса.

Вы проверили роль безопасности для пользователя, которого вы используете для вызова веб-службы? Добавьте этого пользователя в роль системного администратора, если вы этого еще не сделали.

Часто в CRM эта ошибка не имеет ничего общего с безопасностью, а связана с чем-то другим.

Сначала включите трассировку CRM и посмотрите там. Это даст вам больше деталей об ошибках. Вот как: http://support.microsoft.com/kb/907490

Также вы можете попробовать использовать мое средство форматирования исключений, чтобы получить более подробную информацию об ошибке. Это класс расширения, который позволит вам отформатировать исключение и распечатать его на стандартный вывод или в ответ http. Найдите это здесь: http://paste.ly/5Y66

Используйте это так:

try {
   // do all your stuff
} catch (Exception ex) {
   ex.Print();
}

Обратите внимание, что в отформатированном выводе исключения вы можете увидеть десериализованное свойство "Details", чтобы вы могли видеть текстовую версию. Именно здесь CRM большую часть времени скрывает настоящее исключение.

...