今天终于解决了困扰两天的一个问题。
问题:返回400错误,找不到该网页。
在项目里运行.svc文件,输入http://localhost:80811/CallTaxiService.svc/CallTaxi/Phone?Longitude=116.35698&Latitude=46.23578可以得到访问数据库的结果,但是部署到iis上面后,使用http://localhost:8081/CallTaxi4/CallTaxiService.svc/CallTaxi/Phone?Longitude=116.35698&Latitude=46.23578却出现400错误。
原因是数据库使用的EF模型,其默认使用Windows验证方式。
解决:找到config文件,修改其数据库连接方式<connectionStrings><add name="CallTaxiDBEntities" connectionString="metadata=res://*/CallTaxiDataModel.csdl|res://*/CallTaxiDataModel.ssdl|res://*/CallTaxiDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=***;Initial Catalog=CallTaxiDB;User ID=**;Password=***;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/></connectionStrings></configuration>
下面是原始连接串,可以看到起使用了Integrated Security=True。表示这是Windows验证方式。
<connectionStrings><add name="CallTaxiDBEntities" connectionString="metadata=res://*/CallTaxiDataModel.csdl|res://*/CallTaxiDataModel.ssdl|res://*/CallTaxiDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=***;Initial Catalog=CallTaxiDB;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/></connectionStrings></configuration>