У меня есть локальный сервер IIS, локальный сервер SQL и служба тестирования WCF с тремя методами интерфейса:
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
[OperationContract]
string getFirstName();
Первые два - это шаблон VS, и я добавил getFirstName()
метод
{
//very basic
string connectionString = @"Data Source=.\SqlExpress;Initial Catalog=ProjectDB;Integrated Security=True";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand command = new SqlCommand("select * from messages;", con);
DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(table);
con.close();
return table.Rows[0][3].ToString();
}
Когда я тестирую вызов на тестовом клиенте WCF VS, все методы работают так, как должны.
Когда служба публикуется в локальном IIS с помощью мастера VS (публикация -> Локальный IIS -> Сайт MyTestWeb), я получаю сообщение об ошибке при попытке вызвать getFirstName()
(методом проверки подлинности SQL является проверка подлинности Windows).
Другие методы:
CompositeType GetDataUsingDataContract(CompositeType composite);
и
string GetData(int value);
отлично работает как на сервере разработки VS, так и на локальном сервере IIS.
Спасибо.