C# Windows服务调用WebGet方法返回400错误

C# Windows服务调用WebGet方法返回400错误,c#,C#,我有一个服务,它运行一个c#方法,以指定的时间间隔将数据库与active directory同步。此代码已在测试环境中运行,现在将其放在另一台服务器上,它将返回以下消息: 服务器在处理请求时遇到错误。请看 服务帮助页,用于构造对服务的有效请求 帮助页面如下所示: 但是“SyncActiveDirectory”URI给了我以下错误: 这是一台新服务器。可能我缺少一些需要安装的东西或IIS中的设置?任何帮助都将不胜感激 编辑: 以下是调用webget的方法: private void SyncA

我有一个服务,它运行一个c#方法,以指定的时间间隔将数据库与active directory同步。此代码已在测试环境中运行,现在将其放在另一台服务器上,它将返回以下消息:

服务器在处理请求时遇到错误。请看 服务帮助页,用于构造对服务的有效请求

帮助页面如下所示:

但是“SyncActiveDirectory”URI给了我以下错误:

这是一台新服务器。可能我缺少一些需要安装的东西或IIS中的设置?任何帮助都将不胜感激

编辑: 以下是调用webget的方法:

private void SyncActiveDirectoryServiceCall()
        {
            WriteIntoLogFile("Start _schedulerService.SyncActiveDirectoryServiceCall()");

            try
            {
                var reader = new AppSettingsReader();
                var serviceurl = reader.GetValue("ServiceUrl", typeof(string));
                var client = new RestSharp.RestClient(serviceurl.ToString());
                var request = new RestSharp.RestRequest("SyncActiveDirectory", RestSharp.Method.GET);
                var response = client.Execute(request);
                WriteIntoLogFile(response.Content);
            }
            catch (WebException ex)
            {
                using (WebResponse response = ex.Response)
                {
                    HttpWebResponse httpResponse = (HttpWebResponse)response;

                    WriteIntoLogFile("Error code: " + httpResponse.StatusCode);

                    using (Stream data = response.GetResponseStream())
                    using (var reader = new StreamReader(data))
                    {
                        string text = reader.ReadToEnd();
                        WriteIntoLogFile("STREAMED: " + text);
                    }
                }
                WriteIntoLogFile("TRY-CATCH: " + ex.ToString());
            }
            WriteIntoLogFile("End _schedulerService.SyncActiveDirectoryServiceCall()");

        }
下面是调用的方法:

namespace SyncActiveDirectory
{
    public class SyncLocalWithLDAP : ISyncLocalWithLDAP
    {
        private List<GenericUser> users { get; set; }
        private List<GenericUser> roles { get; set; }
        [WebGet(UriTemplate = "SyncActiveDirectory")]
        public void SyncActiveDirectory()
        {
            string constr = GetConnectionStringValue("ProteusMMXCustomerDB");
            string usr = GetAppsettingValue("ldap_login_username");
            string pss = GetAppsettingValue("ldap_login_password");
            string filePath = string.Empty;
            ActiveDirectoryWrapper wrapper = new ActiveDirectoryWrapper();
            if (!Directory.Exists(WebConfigurationManager.AppSettings["LogFolderPath"] + "ServiceLog"))
            {
                Directory.CreateDirectory(WebConfigurationManager.AppSettings["LogFolderPath"] + "ServiceLog");
            }
            if (!File.Exists(WebConfigurationManager.AppSettings["LogFolderPath"] + "ServiceLog" + "/" + "SyncLog.txt"))
            {
                File.Create(WebConfigurationManager.AppSettings["LogFolderPath"] + "ServiceLog" + "/" + "SyncLog.txt").Dispose();
            }

            filePath = WebConfigurationManager.AppSettings["LogFolderPath"] + "ServiceLog" + @"\" + "SyncLog.txt";

            using (StreamWriter w = File.AppendText(filePath))
            {
                Log("Constr - " + constr + " , u - " + usr + " p - " + pss, w);
                try
                {
                    Log("Start sync outer", w);
                    SyncLocalWithLDAP_Users_Roles(constr, usr, pss, w);
                    Log("End sync outer", w);
                }
                catch (Exception ex)
                {
                    Log("Error: " + ex.Message, w);
                }
            }
        }
命名空间同步ActiveDirectory
{
公共类SyncLocalWithLDAP:ISyncLocalWithLDAP
{
私有列表用户{get;set;}
私有列表角色{get;set;}
[WebGet(UriTemplate=“SyncActiveDirectory”)]
public void SyncActiveDirectory()
{
字符串constr=GetConnectionStringValue(“ProteusMMXCustomerDB”);
字符串usr=GetAppsettingValue(“ldap_登录_用户名”);
字符串pss=GetAppsettingValue(“ldap_登录_密码”);
string filePath=string.Empty;
ActiveDirectoryWrapper=新的ActiveDirectoryWrapper();
如果(!Directory.Exists(WebConfiguration Manager.AppSettings[“LogFolderPath”]+“ServiceLog”))
{
CreateDirectory(WebConfiguration Manager.AppSettings[“LogFolderPath”]+“ServiceLog”);
}
如果(!File.Exists)(WebConfiguration Manager.AppSettings[“LogFolderPath”]+“ServiceLog”+“/”+“SyncLog.txt”))
{
File.Create(WebConfiguration Manager.AppSettings[“LogFolderPath”]+“ServiceLog”+“/”+“SyncLog.txt”).Dispose();
}
filePath=WebConfiguration Manager.AppSettings[“LogFolderPath”]+“ServiceLog”+@“\”+“SyncLog.txt”;
使用(StreamWriter w=File.AppendText(filePath))
{
对数(“Constr-”+Constr+”,u-“+usr+”p-“+pss,w);
尝试
{
日志(“启动同步外部”,w);
同步本地与LDAP用户角色(CONTR、usr、pss、w);
日志(“结束同步外部”,w);
}
捕获(例外情况除外)
{
日志(“错误:+ex.消息,w);
}
}
}
编辑: 添加到该目录的htm文件的图片。

编辑: 如果这有帮助,下面是Chrome开发者工具标题:

你能分享SyncActiveDirectory运行的代码吗?它对广告服务器有什么要求?用更多代码编辑帖子。在安装服务的目录中添加一个文件,IIS将其作为一个网站,如helloworld.htm。你能浏览到该文件吗?我尝试了你的建议,在网站中添加了一个.htm文件,我可以浏览该文件。将该文件的图片添加到post.any ideas@petryuno1?你能共享SyncActiveDirectory运行的代码吗?它对广告服务器有什么要求?用更多代码编辑post。向安装该服务的目录添加一个文件,IIS将其作为网站,如helloworld.htm。你能浏览到该文件吗?我尝试了你的建议,并在网站上添加了一个.htm文件,我可以浏览该文件。在帖子中添加了该文件的图片。有什么想法@petryuno1?