NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Если Вы используете basicHttpBinding, настраиваете защиту конечных точек ни к "Одному" и транспортируете clientCredintialType ни к "Одному".
<bindings>
<basicHttpBinding>
<binding name="MyBasicHttpBinding">
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="MyService">
<endpoint
binding="basicHttpBinding"
bindingConfiguration="MyBasicHttpBinding"
name="basicEndPoint"
contract="IMyService"
/>
</service>
кроме того, удостоверьтесь каталог Authentication Methods в IIS для Включения Анонимного доступа
Я получил его.
, Если Вы хотите использовать wshttpbinding, u должен добавить учетные данные окон как ниже.
svc.ClientCredentials.Windows.ClientCredential.UserName = "abc";
svc.ClientCredentials.Windows.ClientCredential.Password = "xxx";
спасибо
Вы попытались использовать basicHttpBinding вместо wsHttpBinding? Если бы не нуждаются ни в какой аутентификации и Ws -*, реализации не требуются, Вы, вероятно, были бы более обеспечены с простым basicHttpBinding. WsHttpBinding реализует безопасность WS для безопасности сообщения и аутентификации.
установите анонимный доступ в вашем виртуальном каталоге
запишите следующие учетные данные в вашу службу
ADTService.ServiceClient adtService = new ADTService.ServiceClient();
adtService.ClientCredentials.Windows.ClientCredential.UserName="windowsuseraccountname";
adtService.ClientCredentials.Windows.ClientCredential.Password="windowsuseraccountpassword";
adtService.ClientCredentials.Windows.ClientCredential.Domain="windowspcname";
после этого вы вызовете свои методы веб-службы.
Почему нельзя просто полностью удалить настройку безопасности для wsHttpBinding («нет» вместо «сообщение» или «транспорт»)?