Joh*_*ohn 6 c# asp.net-web-api postman
作为https://stackoverflow.com/questions/48107646/how-to-test-apicontroller...... 的延续......简而言之....
我在VS 2013中处理现有的Windows服务项目.
我添加了一个Web API Controller类......我称之为SynchroniseFromAwsServiceController
我试图从AWS lambda调用中调用它,但它告诉我我没有访问权限.所以我需要在本地测试它,看它是否正在尝试和诊断问题.
namespace Workflow
{
public class SynchroniseFromAwsServiceController: ApiController
{
//// POST api/<controller>
[HttpPost]
public string SapCall([FromBody]string xmlFile)
{
string responseMsg = "Failed Import User";
if (!IsNewestVersionOfXMLFile(xmlFile))
{
responseMsg = "Not latest version of file, update not performed";
}
else
{
Business.PersonnelReplicate personnelReplicate = BusinessLogic.SynchronisePersonnel.BuildFromDataContractXml<Business.PersonnelReplicate>(xmlFile);
bool result = Service.Personnel.SynchroniseCache(personnelReplicate);
if (result)
{
responseMsg = "Success Import Sap Cache User";
}
}
return "{\"response\" : \" " + responseMsg + " \" , \"isNewActiveDirectoryUser\" : \" false \"}";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我用PostMan测试这个.我在VS中运行应用程序并http://127.0.0.1/SynchronisePersonnelXmlFromAwsServiceController/SapEaiCall在POSTMAN ui中输入POST字段...它返回以下内容:
'/'应用程序中的服务器错误.
无法开始监控对"D:\ Development\Trunk\WebAppsMVC\Icon\Icon\global.asax"的更改,因为访问被拒绝.异常详细信息:System.Web.HttpException:无法开始监视对"D:\ Development\Trunk\WebAppsMVC\Icon\Icon\global.asax"的更改,因为访问被拒绝.
堆栈跟踪:
Run Code Online (Sandbox Code Playgroud)[HttpException (0x80070005): Failed to start monitoring changes to 'D:\Development\Trunk\WebAppsMVC\Icon\Icon\global.asax'因为访问被拒绝.] System.Web.DirectoryMonitor.AddFileMonitor(String file)+9929663 System.Web.DirectoryMonitor.StartMonitoringFileWithAssert(String file,FileChangeEventHandler callback,String alias)+89 System.Web.FileChangesMonitor.StartMonitoringFile(String alias,FileChangeEventHandler callback)+331 System.Web.HttpApplicationFactory.SetupChangesMonitor()+122 System.Web.HttpApplicationFactory.Init()+ 161 System.Web.HttpApplicationFactory.EnsureInited()+80 System.Web.HttpApplicationFactory.SetupFileChangeNotifications()+71 System. Web.Compilation.BuildManager.CompileGlobalAsax()+ 57 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()+260
Run Code Online (Sandbox Code Playgroud)[HttpException (0x80004005): Failed to start monitoring changes to 'D:\Development\Trunk\WebAppsMVC\Icon\Icon\global.asax'因为访问被拒绝.] System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()+62 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()+ 435 System.Web.Compilation.BuildManager.CallAppInitializeMethod()+33 System.Web.Hosting .HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)+563
Run Code Online (Sandbox Code Playgroud)[HttpException (0x80004005): Failed to start monitoring changes to 'D:\Development\Trunk\WebAppsMVC\Icon\Icon\global.asax'因为访问被拒绝.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+10085904 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+95 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+254
Run Code Online (Sandbox Code Playgroud)[HttpException]: Failed to start monitoring changes to 'D:\Development\Trunk\WebAppsMVC\Icon\Icon\global.asax'因为访问被拒绝.System.Web处理System.Web.FileChangesMonitor.StartMonitoringFile(String别名,FileChangeEventHandler回调)的System.Web.DirectoryMonitor.StartMonitoringFileWithAssert(String file,FileChangeEventHandler回调,String别名)上的System.Web.DirectoryMonitor.AddFileMonitor(String file). System.Web.HttpApplicationFactory.EnsureInited()中的System.Web.HttpApplicationFactory.EnsureInited()处的System.Web.HttpApplicationFactory.SetupFileChangeNotifications()位于System.Web.Compilation.BuildManager.CompileGlobalAsax()的System.Web上的HttpApplicationFactory.SetupChangesMonitor(). Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()[HttpException]:无法开始监视对"D:\ Development\Trunk\WebAppsMVC\Icon\Icon\global.asax"的更改,因为访问被拒绝.System.Web.Compilation.BuildManager.CallLevelFilesCompiled()的System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()位于System.Web.Hosting.Hosting.Initialize的System.Web.Compilation.BuildManager.CallAppInitializeMethod()处于System.Web.Compilation.BuildManager.ReportTopLevelCompilationException(),ApplicationManager appManager, IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)[HttpException]:无法开始监视对'D:\ Development\Trunk\WebAppsMVC\Icon\Icon\global.asax'的更改,因为访问被拒绝.位于System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)的System.Web.HttpRuntime.FirstRequestInit(HttpContext context)处于System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)
有没有人有任何想法或可以指出我正确的方向,为什么我要归还 <title>Failed to start monitoring changes to 'D:\Development\Trunk\WebAppsMVC\Icon\Icon\global.asax' because access is denied.</title>
UPDATE
谢谢 https://stackoverflow.com/questions/4889297/failed-to-start-monitoring-changes-on-global-asax-net-3-5-web-service-using-imp
我已从该文件夹中删除了只读,并添加了Authenticated Users.现在,当我运行时,它给了我一个不同的错误,但仍然说访问被拒绝....我使用正确的URL? http://127.0.0.1/SynchronisePersonnelXmlFromAwsServiceController/SapEaiCall
无论如何,新的错误是:
'/'应用程序中的服务器错误.访问被拒绝.描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.
错误消息401.2未授权:由于服务器配置登录失败.
验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.
any help would be much appreciated thank you
Run Code Online (Sandbox Code Playgroud)
更新 感谢George Vovos的回复,我已经将http移到了方法之上,并将签名更改为包含控制器.
在邮递员中,我还包括了授权的基本价值标签.
现在,当我在本地运行VS应用程序并尝试通过post man连接时 http://localhost/WebServices.Workflow/SynchroniseFromAwsServiceController/SapCall
(WebServices.Workflow是应用程序名称)
我收到以下消息:
Could not get any response
There was an error connecting to http://localhost/WebServices.Workflow/SynchroniseFromAwsServiceController/SapEaiCall
Why this might have happened:
The server couldn't send a response:
Ensure that the backend is working properly
Self-signed SSL certificates are being blocked:
Fix this by turning off 'SSL certificate verification' in Settings > General
Proxy configured incorrectly
Ensure that proxy is configured correctly in Settings > Proxy
Request timeout:
Change request timeout in Settings > General
Run Code Online (Sandbox Code Playgroud)
我试过关掉SSL ......其他任何想法?
新的更新
继一篇文章之后,我发现我重新启动了PostMan并再次运行POST,现在消息正在返回,There is a duplicate 'exceptionless' section defined这就是我尝试从visual studio运行应用程序.所以至少它朝着正确的方向迈出了一步(我想)......我已经写了一篇关于这个问题的新Q ...
注:如果有人能够帮我回答这个延续Q,我将授予他们这一问赏金注
谢谢你的任何回复
您需要将 Windows 集成身份验证添加到 IIS。检查是否安装:
开始 > 运行 >inetmgr
单击身份验证
如果缺少 Windows Integrated,您将需要按照以下步骤安装它:
在客户端操作系统上:
开始 > 运行 >appwiz.cpl
单击“打开或关闭 Windows 功能”
向下滚动到 Internet 信息服务并将其展开
展开万维网服务
展开安全性
选中您需要的身份验证方法(Windows 集成)
在服务器操作系统上:
转到服务器管理器(开始 -> 管理工具 -> 服务器管理器)
展开角色和 Web 服务器 (IIS)
向下滚动到角色服务,然后单击右侧的添加角色服务
启用以下所需的所有类型保安科
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |