In your functions.php file try register sidebar without putting in function like this
register_sidebar(array( //try not to enclose this in function
'id' => 'primary',
'name' => 'Primary Sidebar',
'description' => 'A short description of the sidebar.',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));
And make call on page like this
<?php get_sidebar('primary'); ?>
And in your sidebar-primary.php
I am assuming you have closed the div. In your code you haven’t show closed div of this file.
UPDATE
Try the above method and change the ID name
of sidebar from functions.php You can’t use same name for ID and sidebar php file (sidebar_primary.php).
So you need to change Id name from functions.php file and as well as from sidebar_primary.php
. like
<?php dynamic_sidebar( 'primary'); ?></div>
In above code primary
is id and you need to rename it.