Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ChatBot从SharePoint内部部署问题检索数据_Sharepoint_Botframework_Azure Bot Service - Fatal编程技术网

ChatBot从SharePoint内部部署问题检索数据

ChatBot从SharePoint内部部署问题检索数据,sharepoint,botframework,azure-bot-service,Sharepoint,Botframework,Azure Bot Service,我开发了一个聊天机器人,可以与SharePoint进行内部通信 当我在模拟器中运行聊天机器人时 但当我运行在SharePoint之外托管的Web时,它就不起作用了 下面是我在Azure上的错误截图,错误的结果是从XMLReader和SyndicationFeed开始的 在本地仿真器中的成功 随信附上我的来源代码 private async Task ProcessRSSAsync(ITurnContext<IMessageActivity> turnContext, LuisR

我开发了一个聊天机器人,可以与SharePoint进行内部通信

当我在模拟器中运行聊天机器人时

但当我运行在SharePoint之外托管的Web时,它就不起作用了

下面是我在Azure上的错误截图,错误的结果是从XMLReader和SyndicationFeed开始的

在本地仿真器中的成功

随信附上我的来源代码

 private async Task ProcessRSSAsync(ITurnContext<IMessageActivity> turnContext, LuisResult luisResult, string intent, CancellationToken cancellationToken)
        {
            var questionluis = turnContext.Activity.Text;

            await turnContext.SendActivityAsync("intent recognize" + intent);

            var intentresut = intent;
            await turnContext.SendActivityAsync("Get LUIS Entity");
            await turnContext.SendActivityAsync(string.Join("\t", luisResult.Entities.Select((entityObj) => entityObj.Entity)));
            var entityfound = string.Join("\t", luisResult.Entities.Select((entityObj) => entityObj.Entity));

            string spxurl = @"https://intra.aspac.com/sites/sg/daw/_layouts/15/srchrss.aspx?k=*%20ListId:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31";

            await turnContext.SendActivityAsync("Intent: " + intent.ToString() + " Entity: " + entityfound.ToString());
            ////---------------------------------------------------------------------------------------------
            //22112019
            try
            {

                //#ES09122019
                var credentials = new NetworkCredential("email@example.com", "Pa$$w0rd", "sg.kworld.com");

                var handler = new HttpClientHandler { Credentials = credentials, UseDefaultCredentials = false };
                var client = new HttpClient(handler);

                client.BaseAddress = new Uri("https://intra.aspac.com/sites/sg/daw/");

                HttpResponseMessage resp = client.GetAsync("_layouts/15/srchrss.aspx?k=" + entityfound + "*%20ListId:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31").Result;

                string respString = resp.Content.ReadAsStringAsync().Result;


                if (resp.StatusCode == HttpStatusCode.OK)
                {
                    await turnContext.SendActivityAsync("Connected");

                    //Success 06122019 .
                    try
                    {
                        string spurl = @"https://intra.aspac.com/sites/sg/daw/_layouts/15/srchrss.aspx?k=*%20ListId:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31";
                        XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), spurl);
                        resolver.Credentials = new NetworkCredential("email@example.com.sg", "Pa$$w0rd", "sg.kworld.com"); 

                        XmlReaderSettings settings = new XmlReaderSettings();
                        settings.DtdProcessing = DtdProcessing.Parse;
                        settings.ValidationType = ValidationType.DTD;

                        settings.XmlResolver = resolver;



                        XmlReader reader = XmlReader.Create(spurl, settings);

                        SyndicationFeed feed = SyndicationFeed.Load(reader);

                        reader.Close();

                        var attachments = new List<Attachment>();
                        foreach (SyndicationItem item in feed.Items)
                        {
                            //Get Title,Description,URL
                            String title = item.Title.Text;
                            String description = item.Summary.Text;
                            String link = item.Links.FirstOrDefault().Uri.ToString();

                            //Hero Card
                            var heroCard = new HeroCard(
                                title: item.Title.Text,
                                // subtitle: description,
                                buttons: new CardAction[]
                                {
                         new CardAction(ActionTypes.OpenUrl,"Learn More",value:link)
                                }
                                ).ToAttachment();
                            attachments.Add(heroCard);

                        }
                        var reply = MessageFactory.Carousel(attachments);
                        await turnContext.SendActivityAsync(reply);
                        await ProcessCosmoDBStorageLUISAsync(turnContext, questionluis, intent, entityfound, respString, cancellationToken);
                    }
                    catch (Exception ex)
                    {
                        await turnContext.SendActivityAsync(ex.ToString());
                    }

                }
            }

            catch (Exception ex)
            {
                await turnContext.SendActivityAsync("Sorry,Currently Server Under Maintenace");
                await turnContext.SendActivityAsync(ex.ToString());
            }

        }
private async任务进程同步(ITurnContext turnContext、LuisResult LuisResult、string intent、CancellationToken CancellationToken)
{
var questionluis=turnContext.Activity.Text;
等待turnContext.SendActivityAsync(“意图识别”+意图);
var intentresut=意图;
等待turnContext.SendActivityAsync(“获取LUIS实体”);
等待turnContext.SendActivityAsync(string.Join(“\t”,luisResult.Entities.Select((entityObj)=>entityObj.Entity));
var entityfound=string.Join(“\t”,luisResult.Entities.Select((entityObj)=>entityObj.Entity));
字符串spxurl=@”https://intra.aspac.com/sites/sg/daw/_layouts/15/srchrss.aspx?k=*%20列表ID:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31”;
等待turnContext.SendActivityAsync(“意图:+Intent.ToString()+”实体:+entityfound.ToString());
////---------------------------------------------------------------------------------------------
//22112019
尝试
{
//#ES09122019
var凭据=新的网络凭据(“email@example.com“,“Pa$$w0rd”,“sg.kwold.com”);
var handler=newhttpclienthandler{Credentials=Credentials,UseDefaultCredentials=false};
var client=新的HttpClient(处理程序);
client.BaseAddress=新Uri(“https://intra.aspac.com/sites/sg/daw/");
httpresponsemessageresp=client.GetAsync(“_layouts/15/srchrss.aspx?k=“+entityfound+”*%20ListId:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31”)。结果;
字符串respString=resp.Content.ReadAsStringAsync().Result;
if(resp.StatusCode==HttpStatusCode.OK)
{
等待turnContext.SendActivityAsync(“已连接”);
//成功06122019。
尝试
{
字符串spurl=@”https://intra.aspac.com/sites/sg/daw/_layouts/15/srchrss.aspx?k=*%20列表ID:7BC0F2C3-6366-48B8-B88A-8738BE1F9C31”;
XmlSecureSolver解析器=新的XmlSecureSolver(新的XmlUrlResolver(),spurl);
resolver.Credentials=新的网络凭据(“email@example.com.sg“,“Pa$$w0rd”,“sg.kwold.com”);
XmlReaderSettings设置=新建XmlReaderSettings();
settings.DtdProcessing=DtdProcessing.Parse;
settings.ValidationType=ValidationType.DTD;
settings.xmlsolver=解析程序;
XmlReader=XmlReader.Create(spurl,设置);
SyndicationFeed=SyndicationFeed.Load(读卡器);
reader.Close();
var attachments=新列表();
foreach(feed.Items中的SyndicationItem项目)
{
//获取标题、描述、URL
字符串标题=item.title.Text;
字符串说明=item.Summary.Text;
String link=item.Links.FirstOrDefault().Uri.ToString();
//英雄牌
var heroCard=新heroCard(
标题:item.title.Text,
//副标题:描述,,
按钮:新CardAction[]
{
新的CardAction(ActionTypes.OpenUrl,“了解更多”,值:link)
}
).ToAttachment();
附件.添加(heroCard);
}
var reply=MessageFactory.Carousel(附件);
等待turnContext.SendActivityAsync(回复);
等待进程CosmodStorage LuisAsync(turnContext、questionluis、intent、entityfound、respString、cancellationToken);
}
捕获(例外情况除外)
{
等待turnContext.SendActivityAsync(例如ToString());
}
}
}
捕获(例外情况除外)
{
等待turnContext.SendActivityAsync(“对不起,当前服务器正在维护”);
等待turnContext.SendActivityAsync(例如ToString());
}
}

对此有什么解决方案和建议吗?

我在使用内部数据库时遇到了类似的问题。当您在外部部署bot时,bot需要internet上可用的、内部不包含的资源。使用bot仿真器可以很好地工作,因为它可以访问您的机器所拥有的内容

尽管如此,azure已经开发了一些可以用来帮助解决此问题的操作。如果您查看应用程序代理,这可能会对您有所帮助


我想这就是你的意思。。。无论如何

好吧,我想我终于更好地理解了这一点,所以希望我能给出一个有用的答复。如果我们有一个共享的白板会容易得多:-)

基本上,就在Microsoft bot Framework服务上托管bot而言,您需要在Azure中注册。然而,有两种不同的选择,并且在托管方面都有很大的不同。当您在Azure中“创建”资源并搜索“Bot”时,您将看到两个选项-“Web应用程序Bot”和“Bot频道注册”:

  • “博特查