Priyam2012 Ответов: 1

Asp.net код не работает на хостинговом сервере


Привет, мой asp.net код работает нормально локально но я размещаю этот проект а не показываю данные
пожалуйста, помогите мне..

МОЙ КОД ТАКОВ -:

private void CallBatocTransIndia()
        {

            string url = "http://www.xxxx.in/";
            
            Thread thread = new Thread(delegate()
            {
                using (WebBrowser browser = new WebBrowser())
                {
                    browser.ScrollBarsEnabled = false;
                    browser.AllowNavigation = true;
                    browser.Navigate(url);
                    browser.Width = 1024;
                    browser.Height = 768;
                    //browser.Document.GetElementById("txtLrNo").SetAttribute("value", "15470038610");
                    //browser.Document.GetElementById("ImageButton1").InvokeMember("click");
                    browser.ScriptErrorsSuppressed = true;

                    browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
                    browser.ProgressChanged += new WebBrowserProgressChangedEventHandler(ProgressChanged);
                    while (browser.ReadyState != WebBrowserReadyState.Complete)
                    {

                        System.Windows.Forms.Application.DoEvents();

                        //gg.InnerHtml = browser.Document.Body.InnerHtml;
                    }
                }
            });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();


        }

        long ff = 0;
        private void ProgressChanged(Object sender, WebBrowserProgressChangedEventArgs e)
        {
            try
            {
                Thread.Sleep(3000);
                HtmlDocument doc = ((WebBrowser)sender).Document;
                if (e.MaximumProgress == 10000)
                {
                    ff = e.MaximumProgress;
                }
                if (e.CurrentProgress > e.MaximumProgress)
                {
                    if (e.CurrentProgress == 10000)
                    {
                        //string m1 = doc.Body.OuterHtml;
                        ////string m2 = GG.InnerHtml;
                        ////string m3 = GG.InnerHtml;
                        //int indexF = m1.IndexOf("LDM Details");
                        //int f = (m1.Length - indexF);
                        //string m11 = m1.Remove(indexF, f);
                        //gg.InnerHtml = m1;
                        //string varstr = doc.Body.OuterHtml;
                        //int indexf = varstr.IndexOf("Transit Details");
                        //int indexE = varstr.IndexOf("Top");
                        //gg.InnerHtml = doc.Body.OuterHtml;
                    }

                }
            }
            catch(Exception ex)
            {
                // browser.Navigate(txtUrl.Text.Trim());
                return;
            }
        }


        private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            string Lrno;
           // Response.Write("<script>alert('Hello');</script>");
            Lrno = Request.QueryString["Lrnostr"];
            try
            {
                HtmlDocument doc = ((WebBrowser)sender).Document;
                string g = e.Url.ToString();


                if (g == "http://www.xyz.in/")
                {

                    doc.GetElementById("txtLrNo").SetAttribute("value", "154700" + Lrno);
                    doc.GetElementById("ImageButton1").InvokeMember("click");
                    flag = true;
                    //System.Threading.Thread.Sleep(20000);

                }
                else
                {
                    //Response.Write("<script>alert('Hello In');</script>");

                    string varstr = doc.Body.OuterHtml;
                    int indexf = varstr.IndexOf("Transit Details");
                    int indexE = varstr.IndexOf("Top");

                    string Main = "<table>" + doc.Body.OuterHtml.ToString().Substring(indexf, (indexE - indexf)) + "</table>";
                    //int indexEtr = Main.IndexOf("LDM Details");
                    int indexEtr = Main.IndexOf("</TABLE>");

                    string TrDt = Main.Substring(0, (Main.Length - indexEtr));
                    string LdmDt = Main.Substring(indexEtr, (Main.Length - indexEtr));
                    int indexCashdt = LdmDt.IndexOf("Cash Memo Details");
                    string LdmDt1 = LdmDt.Substring(0, (indexCashdt));

                    BTPLTrans.InnerHtml = Main; // "<table>" + TrDt + "</Table>" + "<table>" + LdmDt1 + "</table>";
                }


            }
            catch
            {
               // browser.Navigate(txtUrl.Text.Trim());
                return;
            }

       
        }


Что я уже пробовал:

Не показывать данные на хостинговом сервере

Suvendu Shekhar Giri

Ну, а какую ошибку вы получаете?
Вы включили ведение журнала ошибок/трассировку/что-нибудь еще?

Priyam2012

не показывать никаких ошибок...

F-ES Sitecore

Код, подобный этому, редко работает на asp.net, он работал только на вашем локальном компьютере, вероятно, потому, что вы использовали свою собственную учетную запись для запуска своего кода, он не был в многопользовательской среде или миллионе других факторов. Если вы решили неэтично использовать сторонний веб-сайт и представить его так, как будто это ваша собственная работа, вам нужно будет изучить другой способ сделать это, который будет работать с asp.net код.

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Этот код не будет работать в ASP.NET применение. Элемент управления WebBrowser должен использоваться в приложении Windows Forms с окном!

Я уверен, что вы получили его для работы на своей машине, потому что код был запущен так же, как и вы, когда вы отлаживали его в Visual Studio. Он не будет работать при развертывании на веб-сервере, где код никогда не будет иметь окна и работает как учетная запись службы.

Вы должны отбросить этот код и переписать его, используя какой-то другой метод, чтобы "отбросить" веб-сайт, с которого вы пытаетесь получить данные. Возможно, класс WebRequest и HttpWebRequest будут работать для вас. Я предлагаю поискать их в Google и начать читать, чтобы узнать, как их использовать.


Priyam2012

Спасибо за ответ
ОК инстолл визуальную студию в мой VPN-сервер, то код работать ?

Dave Kreskowiak

Какое, к черту, это имеет отношение?

- Нет! Этот код никогда не будет работать в хостинге ASP.NET приложение!