我正在使用p4.net(perforce api for .net)来连接我们的perforce服务器并运行一些命令。
我创建了一个Web服务并创建了一个测试调用(ConnectToServer),当我在本地(localhost:xxxx / project / test.asmx)上测试这个Web服务时,它可以很好地工作,但是,当我部署我的Web服务时为了输出服务器并调用我的“连接”Web方法,它出现并说无法连接Perforce Server。
本地和服务器之间的区别是什么,它们都使用相同的dll来连接perforce,它们都是Web服务,为什么你们认为它会在服务器上抛出错误?是那个配置问题?
答案 0 :(得分:1)
您在Web服务web.config中使用哪种类型的身份验证/模拟?
在远程服务器上运行哪个用户服务?
此用户是否具有Perforce的足够访问权限?
这些是我的第一个问题。
答案 1 :(得分:1)
我会更深入地了解您实际设置Perforce连接参数的方式和位置。正如您所说的username属性返回NETWORK_SERVICE,这表明Perforce用户未显式设置,并且在尝试使用当前操作系统用户时退回。
只是为了验证这一点:在连接到Perforce服务器之前,尝试在代码中中明确设置相关的P4Connection属性,如用户,密码和端口。除非您在Web服务器和Perforce服务器之间存在任何连接和/或保护问题(这似乎不是这种情况),否则这应该有效。
如果以上情况有效,并且您认为自己已经这样做了 - 您是否有可能为一个P4Connection实例设置属性并使用另一个实例进行实际连接尝试?
您也没有说明如何尝试设置凭据;你试图使用例如吗? p4 set(在这种情况下不起作用)或环境变量(然后需要为正确的OS用户或全局设置),或者您当前是显式设置P4Connection属性还是什么?
<强>更新强> 海报试图使用P4HOST(或等效的)而不是P4PORT,请参阅下面的评论。由于其他回复,在各种测试中仍有一些意想不到的结果,但所有测试都可能与根本问题有关。
答案 2 :(得分:0)
您能否检查服务器上是否存在防火墙问题? 来自p4.net的确切错误消息是什么?