Avatar billede qumle Nybegynder
13. august 2004 - 12:12 Der er 1 kommentar og
1 løsning

uddi søgning, error 10500

Jeg skal udføre en søgning i vores uddi register.

jeg har lavet en customcontrol, som bl.a. indeholder et datagrid med et tekst felt til søgeparameter samt en knap til at udføre søgningen


<asp:DataGrid ID="grid" Border='0' CellPadding='4' Width='100%' AutoGenerateColumns='False' ItemStyle-VerticalAlign='Top' ShowFooter='True' OnEditCommand="Edit_OnClick" OnDeleteCommand="Delete_OnClick" OnCancelCommand="Cancel_OnClick" OnUpdateCommand="Update_OnClick" Runat='Server'>
    <EditItemStyle CssClass="tableEditItem"></EditItemStyle>
    <AlternatingItemStyle CssClass="tableAlternatingItem"></AlternatingItemStyle>
    <ItemStyle CssClass="tableItem" VerticalAlign="Top"></ItemStyle>
    <HeaderStyle CssClass="tableHeader"></HeaderStyle>
    <FooterStyle CssClass="tableFooter"></FooterStyle>
    <Columns>
       
        <asp:TemplateColumn>
            <HeaderTemplate>
                <%#"Versions"%>
            </HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="oldLabel"><%#"Old Version Url"%></asp:Label>
                <asp:Label ID="oldUrl">
                    <%#((VersionInfo)Container.DataItem).OldUrl%>
                </asp:Label>
                <br>
                <asp:Label ID="noLabel"><%#"Version No"%></asp:Label>
                <asp:Label ID="VersionNo">
                    <%#((VersionInfo)Container.DataItem).VersionNo%>
                </asp:Label>
            </ItemTemplate>
            <EditItemTemplate>
                <asp:Label><%#"Old Version Url"%></asp:Label>
                <asp:TextBox ID="newOldUrl" Runat="server" />
                <asp:DropDownList ID="ServiceSearchResults" Runat='server'/>
            </EditItemTemplate>
        </asp:TemplateColumn>
       
        <asp:TemplateColumn HeaderStyle-Width='150px'>
            <HeaderTemplate>
                <%#"Actions"%>
            </HeaderTemplate>
           
            <ItemTemplate>
                <asp:Button ID="btnEdit" CommandName='Edit' Text="Edit" CssClass='button' Width='70px' Runat="server" />
                <asp:Button ID="btnDelete" CommandName='Delete' Text="Delete" CssClass='button' Enabled=<%#Container.ItemIndex>0%> Width='70px' Runat="server" />
            </ItemTemplate>
           
            <EditItemTemplate>
                <asp:Button ID="btnSearch" Visible=true OnClick="Search_OnClick" CommandArgument='search' Text="Search" CssClass='button' Width='70px' Runat=server/>
                <asp:Button ID="btnUpdate" CommandName='Update' CommandArgument='update' Text="Update" CssClass='button' Width='70px' Runat="server" />
                <asp:Button ID="btnCancel" CommandName='Cancel' Text="Cancel" CssClass='button' Width='70px' Runat="server" />           
            </EditItemTemplate>
           
            <FooterTemplate>
                <asp:Button ID="btnAdd" Text="Add Old Version" OnClick="Add_OnClick" CssClass='button' Width='146px' Runat="server" />
            </FooterTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>


codebehind

namespace controls
{
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Collections;
    using Microsoft.Uddi;
    using Microsoft.Uddi.Services;
   

    /// <summary>
    ///        Summary description for NewVersion.
    /// </summary>
    public class Versions : System.Web.UI.UserControl
    {

        protected DataGrid grid;
        protected DropDownList ServiceSearchResults;
       



        private VersionInfo version;
        private ArrayList list;
        private ArrayList services;

        public VersionInfo Version
        {
            get{return version;}
            set{version = value;}
        }


       
        private void NewVersion_Init(object sender, System.EventArgs e)
        {    /*   
            if(!Page.IsPostBack)
            {
                list = new ArrayList();

                list.Add(new VersionInfo("myUrl.com",1));
                list.Add(new VersionInfo("YourUrl.com",2));

           
               
            }
            */
        }
           
           
       
        private void Page_Load(object sender, System.EventArgs e)
        {
           
            if(!Page.IsPostBack)
            {
                //list = new ArrayList(new VersionInfo[]{new VersionInfo("myUrl.com",1),new VersionInfo("YourUrl.com",2)});
                list = new ArrayList();
                grid.DataSource = list;
                grid.DataBind();

                Session["list"]=list;
            }
            else
            {
                list=(ArrayList)Session["list"];
            }
            // Put user code to initialize the page here
        }

        protected void Edit_OnClick(Object sender, DataGridCommandEventArgs e)
        {       
            grid.EditItemIndex=e.Item.ItemIndex;
            grid.DataSource=list;
            grid.DataBind();

            Session["list"]=list;
        }

        protected void Delete_OnClick(Object sender, DataGridCommandEventArgs e)
        {
            list.RemoveAt(e.Item.ItemIndex);
            grid.DataSource=list;
            grid.DataBind();           

            Session["list"]=list;
        }

        protected void Update_OnClick(Object sender, DataGridCommandEventArgs e)
        {
            string arg = (string)e.CommandArgument;
            switch(arg)
            {
                case "update":
                    ServiceSearchResults = (DropDownList)e.Item.FindControl("ServiceSearchResults");
                    int index = ServiceSearchResults.SelectedIndex;
                    services = (ArrayList)Session["services"];
                    string newUrl = ((ServiceDetail)services[index]).BusinessServices[0].BindingTemplates[0].AccessPoint.Text;
                    //list = (ArrayList)Session["list"];
                   
                    VersionInfo old =(VersionInfo)list[e.Item.ItemIndex];
                    VersionInfo newInfo = new VersionInfo(newUrl,old.VersionNo);
           
                    list[e.Item.ItemIndex] = newInfo;
           
                    grid.EditItemIndex = -1;
                    grid.DataSource=list;
                    grid.DataBind();

                    Session["list"]=list;
                    break;

                case "search" :
                    DropDownList drop = (DropDownList)e.Item.FindControl("ServiceSearchResults");
                    //drop.Visible=true;
                    //Control control = e.Item.Cells[0].Controls[2];
                    //DropDownList drop = (DropDownList)control;
                    break;

            }

        }

        protected void Cancel_OnClick(Object sender, DataGridCommandEventArgs e)
        {
            grid.EditItemIndex = -1;
            grid.DataSource=list;
            grid.DataBind();
           
        }

        protected void Add_OnClick(Object sender, EventArgs e)
        {
           
            list.Add(new VersionInfo());
            grid.DataSource=list;
            grid.EditItemIndex=grid.Items.Count;
            grid.DataBind();
            Session["list"]=list;
           
        }

        protected void Search_OnClick(Object sender, EventArgs e)
        {
           
            string domain = "XML";
            string user = "administrator";
            string pass = "administrator";

            UddiConnection con = new UddiConnection("http://localhost/uddi/inquire.asmx");

            con.AuthenticationMode = AuthenticationMode.WindowsAuthentication;
            con.PublishUrl="http://localhost/uddi/publish.asmx";

            GetAuthToken getToken = new GetAuthToken(domain+"\\"+user,pass);
            AuthToken token = getToken.Send(con);

            con.AuthInfo=token.AuthInfo;

            DataGridItem item = (DataGridItem)(((Button)sender).Parent.Parent);
            FindService fs = new FindService(((TextBox)item.Cells[0].Controls[1]).Text);


            DropDownList ServiceSearchResults = (DropDownList)item.FindControl("ServiceSearchResults");
            ServiceList serviceList = fs.Send(con);

            services = new ArrayList();
            foreach(ServiceInfo sInfo in serviceList.ServiceInfos)
            {
                GetServiceDetail gsd = new GetServiceDetail(sInfo.ServiceKey);
                ServiceDetail detail = gsd.Send(con);
                services.Add(detail);
                ServiceSearchResults.Items.Add(detail.BusinessServices[0].Names[0].Text);
            }
            Session["services"]=services;

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        ///        Required method for Designer support - do not modify
        ///        the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler(this.Page_Load);
            this.Init += new System.EventHandler(this.NewVersion_Init);

        }
        #endregion

       
    }
}

søgningen fungerer fint når jeg kører den fra en testside.
men så snart jeg lægger kontrollen op på serveren og kører den for jeg følgende fejl

  <?xml version="1.0" encoding="utf-8" ?>
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
- <soap:Body>
- <soap:Fault>
  <soap:faultcode>soap:Client</soap:faultcode>
  <soap:faultstring />
- <soap:detail>
- <dispositionReport generic="2.0" operator="WIN2003Dev6" xmlns="urn:uddi-org:api_v2">
- <result errno="10500">
  <errInfo errCode="E_fatalError">The request failed validation. Details: This stream does not support seek operations.</errInfo>
  </result>
  </dispositionReport>
  </soap:detail>
  </soap:Fault>
  </soap:Body>
  </soap:Envelope>

den eneste info jeg har fundet om error 10500 på msdn (og google) er this is a fatal technical error.

Ikke særlig brugbar info

Nogen der har set denne fejl før eller ved hvad jeg gør forkert?
Avatar billede qumle Nybegynder
13. august 2004 - 12:14 #1
ok det var vist lige lovlig meget irrelevant kode...

søgningen foregår i denne metode

protected void Search_OnClick(Object sender, EventArgs e)
        {
           
            string domain = "XML";
            string user = "administrator";
            string pass = "administrator";

            UddiConnection con = new UddiConnection("http://localhost/uddi/inquire.asmx");

            con.AuthenticationMode = AuthenticationMode.WindowsAuthentication;
            con.PublishUrl="http://localhost/uddi/publish.asmx";

            GetAuthToken getToken = new GetAuthToken(domain+"\\"+user,pass);
            AuthToken token = getToken.Send(con);

            con.AuthInfo=token.AuthInfo;

            DataGridItem item = (DataGridItem)(((Button)sender).Parent.Parent);
            FindService fs = new FindService(((TextBox)item.Cells[0].Controls[1]).Text);


            DropDownList ServiceSearchResults = (DropDownList)item.FindControl("ServiceSearchResults");
            ServiceList serviceList = fs.Send(con);

            services = new ArrayList();
            foreach(ServiceInfo sInfo in serviceList.ServiceInfos)
            {
                GetServiceDetail gsd = new GetServiceDetail(sInfo.ServiceKey);
                ServiceDetail detail = gsd.Send(con);
                services.Add(detail);
                ServiceSearchResults.Items.Add(detail.BusinessServices[0].Names[0].Text);
            }
            Session["services"]=services;

        }
Avatar billede qumle Nybegynder
18. august 2004 - 10:10 #2
hmm ingen svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester