开发者

SSRS wont publish report but it returns successful as if it did

开发者 https://www.devze.com 2023-04-13 09:16 出处:网络
public static void ListFolders() { HomeFolderListing = new List<string>(); ReportingServiceSoapClient rs = new ReportingServiceSoapClient();
public static void ListFolders()
{
    HomeFolderListing = new List<string>();

    ReportingServiceSoapClient rs = new ReportingServiceSoapClient();
    rs.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;

    CatalogItem[] HomeFolders = null;
    string reportPath = "/";
    rs.ListChildren(reportPath, true, out HomeFolders);

    foreach (var ho开发者_运维知识库meF in HomeFolders)
    {

        if (homeF.Name.ToString().ToLower().Contains("base"))
        {
            if (homeF.Path.ToString().ToLower().Contains("/data sources/"))
            {
            }
            else
            {
                Console.WriteLine("Adding reporting folder: " + homeF.Name.ToString());
                HomeFolderListing.Add(homeF.Path.ToString());
            }
        }

    }

}

public static void PublishReport()
{
    foreach (string HomeFold in HomeFolderListing)
    {
        ReportingServiceSoapClient rs = new ReportingServiceSoapClient();
        rs.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;

        BatchHeader bh = new BatchHeader();
        string batchID = null;
        rs.CreateBatch(out batchID);
        bh.BatchID = batchID;

        Byte[] definition = null;
        Warning[] warnings = null;

        try
        {
            FileStream stream = File.OpenRead(ReportInformation.Report2Deploy);
            definition = new Byte[stream.Length];
            stream.Read(definition, 0, (int)stream.Length);
            stream.Close();
        }
        catch (Exception ex)
        {

        }
        try
        {

            string filename = ReportInformation.ReportDeployNameOnly;
            Console.WriteLine("Deploying Report: " + filename + " to: " + HomeFold);
            rs.CreateReport(bh, filename, HomeFold, true, definition, null, out warnings);

            if (warnings != null)
            {
                foreach (Warning warning in warnings)
                {
                    Console.WriteLine(warning.Message);
                }
            }

            else
                Console.WriteLine("Report: {0} created successfully with no warnings", filename);


        }
        catch (Exception ex)
        {

        }
    }
}

when i execute rs.CreateReport() it comes back as if it was successful with no warning, however, when i view the server it just isn't there. And yes I've looking in all the folders.


Are you sure there is no error? There's an empty catch block. The documenation says to catch a SoapException. Try this in the catch:

catch (SoapException e)
 {
      //Do something with the error, sample code write to console
      Console.WriteLine(e.Detail.InnerXml.ToString());
 }

Taken from:

http://msdn.microsoft.com/en-us/library/aa225813(v=sql.80).aspx

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号