C# 将侦听器发布到文件传输中

C# 将侦听器发布到文件传输中,c#,visual-studio,post,file-transfer,C#,Visual Studio,Post,File Transfer,首先,我会说我的C#不流利,所以如果我缺少我应该拥有的知识,请原谅我 我一直在尝试构建一个一直运行的程序(只在服务器上运行),每次在特定端口(445)上有来自特定IP地址(例如,aka 192.215.129.28)的post请求时,我的程序都会捕获正在发布的任何内容(应该是gzip文件)然后将其保存到运行此程序的网络上的文件夹中 我目前有代码在本地网络上侦听请求,但当我将其更改为IP时,我需要侦听我的请求 "An unhandled exception of type 'System.Net.

首先,我会说我的C#不流利,所以如果我缺少我应该拥有的知识,请原谅我

我一直在尝试构建一个一直运行的程序(只在服务器上运行),每次在特定端口(445)上有来自特定IP地址(例如,aka 192.215.129.28)的post请求时,我的程序都会捕获正在发布的任何内容(应该是gzip文件)然后将其保存到运行此程序的网络上的文件夹中

我目前有代码在本地网络上侦听请求,但当我将其更改为IP时,我需要侦听我的请求

"An unhandled exception of type 'System.Net.HttpListenerException' occurred in System.dll

Additional information: The process cannot access the file because it is being used by another process"pop up in my visual studio. 
我所做的只是改变这一行:

listener.Prefixes.Add("http://127.0.0.1:8000/");
这条线

listener.Prefixes.Add("http://192.215.129.28:445/");
这导致了这个错误。也不确定如何抓取张贴的内容。不过,大多数人只是想解决这个错误,但他们一直在苦苦思索为什么IP更改会破坏它

以下是完整的功能,以备需要:

private void Form1_Load(object sender, EventArgs e)
        {
            listener = new HttpListener();

            listener.Prefixes.Add("http://192.215.129.28:445/");
            listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;

            listener.Start();
            this.listenThread1 = new Thread(new ParameterizedThreadStart(startlistener));
            listenThread1.Start();

        }
试着用这个

listener.Prefixes.Add("0.0.0.0:445");

如果你在192.215.129.28上收听,但在8000端口上收听,会发生什么情况?@Evk与此完全相同。但是,可能值得注意的是,如果我错误地使用端口445的listener.Prefixes.Add(“);则它会以相同的方式中断。因此,它会在任何时候中断其端口445,或者如果我将该IP用于任何端口。您正在运行的任何更改都是非开发的(即不是管理员)?@Evk程序以管理员身份运行,对所有内容都有完全访问权限。IP地址是文件进入的位置,尝试使用此策略检测文件何时进入。前缀主机部分(192.215.129.28)应该是本地主机或IP地址,或者是从您的主机映射到外部IP地址的DNS名称。根据您的描述,您似乎希望它是远程IP地址(“来自特定IP地址的请求”)。其次,确保指定的本地端口(例如445)未被其他应用程序(例如IIS)使用。这并不能提供问题的答案。一旦你有足够的答案,你将能够;相反,.-@Console它提供了一个答案。它是否正确并不重要。