sql - لوالديه - هل يجوز طاعة الوالدين في طلاق الزوجة



سكلديبندنسي لا يطلقون النار (1)

كنت في عداد المفقودين: dependency.OnChange += new OnChangeEventHandler(OnChange); سيبدو الرمز الجديد كما يلي:

               SqlDependency dependency = new SqlDependency(command);

               dependency.OnChange += new OnChangeEventHandler(OnChange);

الآن أستطيع أن النار void OnChange(object sender, SqlNotificationEventArgs e)

أنا أحاول سكلديبيندينسي للمرة الأولى. أنا لا تحصل على أي إخطارات على تحديث قاعدة البيانات.

أنا وضع نقاط التوقف داخل: OnChange(object sender, SqlNotificationEventArgs e) ،

ولكن لم يحصل ضرب.

في ما يلي الشفرة:

    protected void Page_Load(object sender, EventArgs e)
    {

        Label1.Text = "Cache Refresh: " + DateTime.Now.ToLongTimeString();
        DateTime.Now.ToLongTimeString();
        // Create a dependency connection to the database.
        SqlDependency.Start(GetConnectionString());

        using (SqlConnection connection = new SqlConnection(GetConnectionString()))
        {
            using (SqlCommand command = new SqlCommand(GetSQL(), connection))
            {

                SqlDependency dependency =
                        new SqlDependency(command);

                    // Refresh the cache after the number of minutes
                    // listed below if a change does not occur.
                    // This value could be stored in a configuration file.
                                  connection.Open();

                dgHomeRequests.DataSource = command.ExecuteReader();
                    dgHomeRequests.DataBind();

            }
        }   
    }


    private string GetConnectionString()
    {
        // To avoid storing the connection string in your code,
        // you can retrieve it from a configuration file.
        //return "Data Source=(local);Integrated Security=true;" +"Initial Catalog=AdventureWorks;";
        return ConfigurationManager.ConnectionStrings["TestData"].ConnectionString;
    }
    private string GetSQL()
    {
        return "Select [Address] From [UserAccount1]";
    }


    void OnChange(object sender, SqlNotificationEventArgs e)
    {
        // have breakpoint here:
        SqlDependency dependency = sender as SqlDependency;

        // Notices are only a one shot deal
        // so remove the existing one so a new 
        // one can be added

        dependency.OnChange -= OnChange;

        // Fire the event
       /* if (OnNewMessage != null)
        {
            OnNewMessage();
        }*/
    }

لقد وضعت أيضا بعض التعليمات البرمجية في ملف Global.asax:

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        SqlDependency.Start(ConfigurationManager.ConnectionStrings["TestData"].ConnectionString);
    }
    protected void Application_End()
    {
        // Shut down SignalR Dependencies
        SqlDependency.Stop(ConfigurationManager.ConnectionStrings["TestData"].ConnectionString);
    }
}

خادم سكل على الجهاز المحلي. أنا تشغيل التعليمات البرمجية من خلال فيسوال ستوديو (إيس إكسبريس).

  1. لتمكين وسيط الخدمة على قاعدة البيانات:

    ألتر داتاباس سيت ENABLE_BROKER غو

  2. للاشتراك في إشعار الاستعلام، نحتاج إلى منح الإذن لحساب خدمة إيس

    GRANT SUBSCRIBE QUERY NOTIFICATIONS TO “<serviceAccount>”

اعتقدت ليست هناك حاجة نقطة 2ND كما هو المحلي. ولكن حاولت إعطائها بعض الأذونات. لا أعرف ما إذا كانوا على حق كما لا أعتقد أنه يستخدم تجمع app.And لا تحتاج إلى إذن على إنف المحلية. إذا أنا المستخدم نفسي وأنشأت المخطط نفسي.

وكانت إحدى الأسئلة التي رأيتها هي:

alter authorization on database::<dbName> to [sa];

أعطيت هذا الإذن أيضا.